現在railsでsnsアプリを開発中です。
DB生成時に、下記のように外部キー指定をせずマイグレーションしてしまいました。
この状況から、すでにあるカラムをFKに指定することは可能でしょうか?
ご教授願います。
class CreatePosts < ActiveRecord::Migration[5.2] def change create_table :posts do |t| #本来ならここで # t.belongs_to :user_id とすべきだった。 t.integer :user_id t.string :body t.timestamps end end end
マイグレーションをrollbackさせてテーブルを生成し直すというやり方もあるかと思いますが、
既に幾つかデータを持たせてしまっているので、最終手段としたいです。
よろしくお願いします。
#試したこと
新たにmigrationファイルを生成し下記の記述で付与できないか試しましたが、
下記のようにおこられました。(そらそうだろという感じですが。。)
ruby:20201207083234_add_posts_ref_to_users.rb
1class AddPostsRefToUsers < ActiveRecord::Migration[5.2] 2 def change 3 add_reference :Posts, :user, foreign_key: true 4 end 5end
SQLite3::SQLException: duplicate column name: user_id: ALTER TABLE "Posts" ADD "user_id" integer
#環境
開発:
rails5.2
ruby2.4
sqlite3
デプロイ:
AWS(
Nginx
puma
Mysql )
よろしくお願いしますm(_ _)m
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/12/09 17:02 編集
2020/12/09 23:21
2020/12/19 23:49
2020/12/20 01:36
2020/12/20 02:23 編集