2016-04-16 3 views
0

Railsアプリケーションデータベースに問題があり、これでマイグレーションが完了できなくなりました。SQLiteのコマンドライン - マイグレーションエラーを削除する

私は以下の結果と私のコマンドラインで次のように実行してきました -

プラグマtable_info(イベント)。ここで

0|id|INTEGER|1||1 
1|title|varchar|0||0 
2|location|varchar|0||0 
3|date|date|0||0 
4|time|time|0||0 
5|description|text|0||0 
6|organised_by|varchar|0||0 
7|created_at|datetime|1||0 
8|updated_at|datetime|1||0 
9|user_id|integer|0||0 
10|image_file_name|varchar|0||0 
11|image_content_type|varchar|0||0 
12|image_file_size|integer|0||0 
13|image_updated_at|datetime|0||0 
14|category_id|integer|0||0 
15|url|varchar|0||0 
16|number_of_spaces|integer|0||0 
17|price|integer|0||0 
18|is_free|boolean|0||0 
19|organiser_profile|url|0||0 

問題は、この表には19である -

19|organiser_profile|url|0||0 

URLが誤って入力された許容可能なデータ・タイプではありません。私はこれがデータベースがそれ以上のマイグレーションを行うことを妨げている障害であると私は信じています。

私はかなりRailsを使い慣れていて、これまでデータベースを手作業で修正したことはありません。私がしたいことは次の通りです -

  1. 削除/削除/ダンプ - いいえ19私のイベントテーブルから。 行全体がなくてはなりません。 バンドルのexecすくいデシベル - くらい

  2. 私は、次のアクションを実行する前には存在しませんので、このアプリは、開発中である(ドロップ:私はすくいデシベルを実行する前に、データベースにあるもの

  3. チェック:デシベルをドロップ:DBを作成:移行、私は簡単にこの

から来ることができるものの影響を理解したい、私がこの問題を修正し、私は再び移行を実行することを可能にし、移動するために必要なものであるかなり確信しています私のアプリで転送する前に、私は上記のいずれかをしたことがないこのプロセスに対する援助に非常に感謝しています。

+0

既存のRailsアプリケーションは、 'url'タイプのカラムを含むテーブルでセットアップされており、SQLiteの上で実行しようとしていますか? 'organiser_profile'はどこに' schema.rb'が定義されていますか?このアプリケーションはどのデータベースと一緒に使用されるのですか? –

+0

いいえ、列はorganiser_profileです。使用したタイプは無効なURLでした。今私のデータベースから完全に削除する必要があります。 schema.rbで、次のメッセージが表示されます。 'NoMethodErrorのためにテーブル#イベントをダンプできませんでした。 #[未定義のメソッド] [nil:NilClass']。これは明らかに移行エラーのためです。私が考えることができる他の理由はありません(私はすべてをチェックしました)。アプリはイベントサイト - イベントの作成/予約です。 –

+0

ええ、この 'organiser_profile'列はどこから来たのですか?手動で作成しましたか?既存のSQLiteデータベースの上にアプリケーションを構築しようとしていますか? –

答えて

0

貴重な情報が失われる危険性があります。まだ間違ったマイグレーションの前にgithubからdbファイルをチェックアウトしてください。

git checkout <commit> file 

次に、誤っている移行を修正し、rake db:migrateを使用して再度移行を実行してください。この場合、コマンドラインから不要なテーブルを手動で編集する必要はありません。

+0

私はgitコマンド 'git add --all && git stash && git stash drop'でこのようなことを試してみて、私のファイルを再オープンしました。スキーマが表示されていましたが、別の移行を試みたときにエラーが戻ってきました。 –

+0

スキーマを削除するだけで(これを行う必要はありませんが、やり直してください)、最初からデータベースをチェックアウトしてから、すべての移行を再度実行してください。それは真剣にすべてを行う必要があります – Robbo

+0

スキーマファイル全体を削除しますか? –

関連する問題