###前提
RubyOnRails 5.0.0.1を使用してウェブアプリを作成しようと思っています。
開発にあたり、DBのMigration関連で疑問点が浮上してきたので質問させていただきます。
知りたいのは、正しいMigrationの扱い方についてです。
###発生している問題・エラーメッセージ
まず、Userモデルをrails generateコマンドで作成したとします。
次に、Userモデルにカラムを使いするために、Migrationファイルを作成しました。
DBに反映させるために、rails db:migtareコマンドを実行しました。
ここまでは問題ないのですが、再度Userモデルにカラムを追加しようとすると、すでにMigrationファイルがあるので、生成できません。
[user@host application_name]$ be rails g migration AddColumnToSites column_one:string invoke active_record create db/migrate/20161123144957_add_column_to_sites.rb [user@host application_name]$ be rails g migration AddColumnToSites column_two:string invoke active_record conflict db/migrate/20161123145007_add_column_to_sites.rb Another migration is already named add_column_to_sites: /home/user/rails/application_name/db/migrate/20161123144957_add_column_to_sites.rb. Use --force to replace this migration or --skip to ignore conflicted file.
###実現したいこと
上記の状況の場合、新たにカラムを追加したい場合は、既存のマイグレーションファイルを書き換えることで対応するので正しいでしょうか?他の手段があれば、ご教授いただきたいです。
また、既存のマイグレーションファイルを書き換えた場合、rails db:migrateによるDBスキーマへの反映が行えないと思います。schema.rbファイルを削除したのち、rails db:migrate:resetを実行することで、データベース丸ごと更新で対応していますが、どうにか既存のデータを消さずにDBスキーマの更新を行うことはできませんか?
また、これらの操作を行うことで、capistranoでのサーバーデプロイ時に本番データが消失する可能性はありますか?まだ試したことがないので、皆様の経験上、そのような事態が発生したことがあるのかが気になっております。
よろしくお願いいたします。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/11/24 11:30 編集
2016/12/05 02:48