所以,我一直在我的 rails 迁移中使用这段代码:
add_column :target_table, :FK, :integer
execute <<-SQL
ALTER TABLE target_table
ADD CONSTRAINT constraint FOREIGN KEY (FK)
REFERENCES some_table (id)
ON UPDATE CASCADE ON DELETE RESTRICT
SQL
作为任何优秀的程序员,我想让事情尽可能简短和快速。
我是这种语言的新手,想知道下面的代码是否等同于我的 SQL(在所有方面)。
add_column :target_table, :FK, :integer, null: false
add_index :targe_table, :FK
PLUS:如果这些代码在 up 方法中,我的 down 方法应该是什么样子?
- 编辑 -
我做了一些研究并阅读了第三种方法:
add_column :target_table, :FK, :integer, null: false, references: some_table
这些都是等价的吗?rails 约定会为索引添加适当的约束吗?如果有人能告诉我这些差异,我将不胜感激。