1

これは、他のいくつかの投稿で部分的にカバーされているが、直接適切に回答されていない、少し奇妙な質問です。schema_migrationsデータベースには、数年前にハムフィストプラグインによってダンプされた移行バージョン番号がいくつかあります。

ここに画像の説明を入力してください

その運命の日以来、私たちのスキーマは次のようになっています。

ActiveRecord::Schema.define(:version => 20090409010513002) do

移行バージョン番号はlongsであるため、Railsは、約6000万年後に作成されたスキーマバージョンであると想定します。

移行のドキュメントには、特定のデータベースで実行されていないすべての移行でupメソッドが呼び出されると記載されているため、これは安全だと思います。過去3年間、移行を作成して正常に実行しているため、これが当てはまるようです。Railsは「バージョン20090409010513002に正式に移行しましたが、まだ移行を実行していません(2012年に何か)ので、それを実行してデータベースに追加します。

私の質問は2つあります。

  1. 現状に隠れた危険はありますか?物事は十分に機能しているようですが、私は彼らがそうし続けることを知りたいです。
  2. これらの非常に長い移行番号には、実際には移行ファイルが添付されていないため(20090409010513のファイルはありますが、001または002バージョンのファイルはありません)、これらの行を削除しても害はありません。これにより、Railsは認識します。真の最新の移行?
4

1 に答える 1

0

最初の質問について、私が考えることができる1つの危険は、db/schema.rbファイルがデータベースの内容に対応しているかどうかを判断するのにそれほど有用ではないということです。

2番目の質問について-スクリーンショットは本番データベースからのものだと思います。開発環境でschema_migrations行う場合、表には何が表示されますか?rake db:setup開発中のschema_migrationsテーブルにこれらの2つの偽のエントリがない場合は、本番データベースからそれらを削除しても安全だと思います。

于 2012-10-18T21:47:43.673 に答える