Ruby on Rails 数据库迁移不会在 MySQL 表中创建外键
我正在尝试修改 Ruby on Rails 应用程序中的数据库迁移。我使用 MySQL 作为数据库,并且想将外键添加到正在创建的表中。我正在使用以下代码,虽然遵循在适当列上创建空值的规范,但没有应用外键约束。
class CreateBookCheckOuts < ActiveRecord::Migration
def self.up
create_table :book_check_outs do |t|
t.integer :book_id, :null => false, :options =>
"CONSTRAINT fk_book_check_out_books REFERENCES books(id)"
t.integer :person_id, :null => false, :options =>
"CONSTRAINT fk_book_check_out_people REFERENCES people(id)"
t.datetime :OutDate, :null => false
t.datetime :ReturnDate, :null => true
t.timestamps
end
end
def self.down
drop_table :book_check_outs
end
end
I am trying to modify a database Migration in a Ruby on Rails application. I am using MySQL as my database and would like to add foreign keys to the table that is being created. I am using the following code and while the specifications for creating null values on appropriate columns is being followed no foreign key constraints are being applied.
class CreateBookCheckOuts < ActiveRecord::Migration
def self.up
create_table :book_check_outs do |t|
t.integer :book_id, :null => false, :options =>
"CONSTRAINT fk_book_check_out_books REFERENCES books(id)"
t.integer :person_id, :null => false, :options =>
"CONSTRAINT fk_book_check_out_people REFERENCES people(id)"
t.datetime :OutDate, :null => false
t.datetime :ReturnDate, :null => true
t.timestamps
end
end
def self.down
drop_table :book_check_outs
end
end
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您可以使用 Foreigner gem。
然后将您的迁移更改为:
You can use the Foreigner gem.
Then change your migration to this: