Railsで以下のようにemployee_number
を主キーとしたUsersテーブルとtitleカラムを持つTasksテーブルをを作成しました。
class CreateUsers < ActiveRecord::Migration[6.0] def change create_table :users, id: false, primary_key: :employee_number do |t| t.string :name, null: false t.string :email, null: false t.string :password_digest, null: false t.integer :employee_number t.timestamps end add_index :users, :email, unique: true add_index :users, :employee_number, unique: true end end
class CreateTasks < ActiveRecord::Migration[6.0] def change create_table :tasks do |t| t.string :title, null: false t.timestamps end end end
TasksテーブルにUsersテーブルへの参照を追加したいと思い以下のようなマイグレーションファイルを作成したのですが、rails db:migrate
するとERROR: column "employee_number" referenced in foreign key constraint does not exist
とエラーがでます。
独自に設定した主キーを外部キーとするにはどのようにすれば良いのでしょうか?
class AddUserColumnToTasks < ActiveRecord::Migration[6.0] def up add_foreign_key :tasks, :users, column: :employee_number end def down remove_foreign_key :tasks, :users, column: :employee_number end end
あなたの回答
tips
プレビュー