我在MySQL数据库中有一个用户表。在我的Rails 4应用程序中,我创建了一个名为Permission的模型,如下所示:
rails g model Permission user:references privilege:references
当我运行创建权限表的迁移时,表确实在数据库中创建了,但我收到了以下错误:
== 20170223171936 CreatePermissions: migrating ================================
-- create_table(:permissions)
rake aborted!
StandardError: An error has occurred:
Mysql2::Error: Cannot add foreign key constraint: ALTER TABLE `permissions` ADD CONSTRAINT `fk_rails_d9cfa3c257`
FOREIGN KEY (`user_id`)
REFERENCES `users` (`id`)
由于用户表已经存在,我不明白为什么在权限表中创建外键会失败。可能出了什么问题呢?
add_column(:projects, :price_list_id, :integer, null: false)
的外键,但当我尝试添加外键时,迁移失败了。我需要使用add_column(:projects, :price_list_id, :bigint, null: false)
来添加外键,以便它们匹配。 - Yardboy