過去の MySQL のダンプファイルから
table_create でテーブルを作成し、
User.create とかで初期データを流し込んで
MySQL を同じ状態にするためのマイグレーションファイルを作成したのですが
そのあとモデルに後から追加されたカラムのバリデーション
user.rb に
validates :time_zone, allow_nil:true, ...
というのが追加されています
この状態で空の MySQL に対して rake db:migrate を行うと User.create のところでバリデーションエラーが出てしまいます
User.create を行ったときに MySQL に存在しないカラムのバリデーションがあると allow_nil をつけてもエラーになるということですか?
この場合どう回避するのが自然なのでしょうか
意図としてはダンプファイルを作成した時点の MySQL の状態をつくって、
それ以降は既存のマイグレーションを実行するつもりだったのですが
モデルだけが先行してしまっていることになります
ブログもいろいろ調べてみてスキーマ構成を再現するまではいろいろでてくるのですが
レコード追加までをマイグレーションでやるというブログがほとんどでてこなくて手探り状態です
ダンプファイルを流し込むだけですむ話なのに
数日かかってしまってここまで苦労して ruby で MySQL の初期化を行う必要があるのか疑問を感じています…
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2018/10/09 02:29
2018/10/09 02:47
退会済みユーザー
2018/10/09 03:20