Sequel から同様のエラー メッセージが時々表示されるので、あなたの痛みを感じます。
Sequel は、schema_info
アプリ データベースで呼び出されるテーブルを作成し、実行した移行を追跡します。
create_table(:schema_info) do
column :version, "int(11)", :default=>0, :null=>false
end
タイムスタンプまたは整数バージョンのいずれかを使用します。
エラー メッセージは、Sequel がそのテーブルを作成していないか、アプリケーション データベースを最初から再作成したことが原因である可能性があります。この場合、スキーマ バージョンが失われ、エラー メッセージが作成されます。
あなたが提供した情報を考えると、何が起こったのかを正確に言うことはできません.
同様のエラーが時々発生するため、移行ファイル内のすべての移行コードをコメントアウトし、移行を実行してから、コードのコメントを再度外します。
特定の移行を既に実行していることが確実な場合はversion
、テーブル内のフィールドの値を変更できschema_info
ます。
次の移行があるとします。
001_some_migration.rb
002_some_other_migration.rb
...そして、すでに 001 を実行していて、「既に存在します」というエラーが表示された場合は、 を設定できますschema_info
。version
= 1 にして、もう一度移行を実行します。移行 #1 は実行されませんが、#2 は直接実行されます。