1

私の果てしない愚かさの中で、移行ではなくmysqlを使用してmysql dbを変更したため、dbは移行と同期しなくなりました。

私の質問は、データベースのデータと変更*を失うことなく、欠落している移行 (ステップ) と新しい schema.db を生成できるかどうかです。

*テーブル、列の追加などの変更。

どうも

4

2 に答える 2

1

As far as recreating your migrations, you're out of luck but you can recreate the schema

rake db:schema:dump

If you go this route, when creating a new db (for a new environment etc...) you'll want to do

RAILS_ENV=some_env rake db:schema:load # specify the env if not development

instead of

rake db:migrate

since your migrations do not align with the current schema.

Be careful when running schema:load as it recreates the db from scratch. i.e. you'll lose all data.

于 2013-01-15T15:29:06.100 に答える
0

不足している移行を作成するとよいでしょう。schema_migrationsタイムスタンプをテーブルに手動で追加することで、ローカル dev データベースを修正できます。これは、手動でスキーマを変更した結果です。

また、rake db:migrate:reset(すべてのテーブルを削除して最初から移行する) が同じ結果db/schema.rbになることを確認してrake db:schema:dumpください。データベース スキーマの変更は、移行によって自動化する必要があります。

rake の問題db:schema:loadは、強制的にテーブルを作成することです。

于 2013-01-15T15:33:16.927 に答える