2010-11-22 13 views
0

私はrails 2.3.8を使用しています。現在多くのレコードを持っているuserというテーブルの移行を作成しました。Railsの移行:レコードが既にロードされているテーブルに追加の列を追加する

これで、新しい列を追加する必要があります。

ロールバックは他のテーブルデータを削除するため、新しい移行ファイルを作成する必要がありました。しかし、新しい移行を追加しても機能しませんでした。

def self.up 
    add_column "users", "xyz", :string, :default => "0" 
end 

どういう理由が考えられますか?

  • データが既にロードされているためですか?
  • これはキャッシュと関係がありますか?

ありがとうございます。

script/generate migration add_xyz_to_users 

この:このようなものになるだろう、あなたの場合はそう

script/generate migration <your_migration_name> 

+1

発電機を使用しましたか?タイムスタンプが元のマイグレーションファイルのものよりも古い場合は、何も行われません。 – elmt

+0

はい、私は新しいマイグレーションを作成するためにジェネレータを使用しています.... script/migration add_xyz_to_usersを生成してください。 – Rakesh

+0

タイムスタンプは正常に見えます... – Rakesh

答えて

1

@のelmtさんのコメントフォローアップ、あなたはレールのルートディレクトリにコマンドを使用して移行を作成する必要があります形式がdb/migrate/20101122183814_add_xyz_to_users.rbのファイル名が作成されます。そこに移行を追加する必要があります。ファイル名の名前が正しくない場合、移行は実行されません。

0

ベンが正しく指摘しました。古い移行バージョン番号が原因である可能性があります。しかし、どんなタイプのエラーが起きているのか分かりますか?そして、それは実行中のマイグレーション中ですか?

関連する問題