我使用的是Rails 5和PostGres 9.5。我创建了这个迁移
Even (Add (Mult n1 m) n1)
但地址表的ID列不是整数。也许是因为这个原因,我在运行迁移时遇到以下错误
class CreateSearchCodeTable < ActiveRecord::Migration[5.0]
def change
create_table :search_codes do |t|
t.string :code
t.references :address, index: true, foreign_key: true, on_delete: :cascade
t.index ["code"], name: "index_search_codes_on_code", unique: true, using: :btree
end
end
end
如何指示我的迁移创建与引用列类型相同的列?
答案 0 :(得分:1)
t.references
将作业委托给add_reference
,此人接受:type
参数。从这一点来看,你应该能够做到
t.references :address, type: :string, index: true, foreign_key: true, on_delete: :cascade
^^^^^^^^^^^^^
刚刚在基于玩具sqlite3的项目上测试了这个,它确实有效。应该“正好”在pg上工作。
如何指示我的迁移创建与引用列类型相同的列?
如果您打算告诉它推断另一列的类型并且该类型的类型与之匹配,那么这可能是不可能的。但您可以始终明确指定类型。