在我的一个模型中,我使用非标准主数据库,在迁移文件中处理如下:
create_table item_similarities, :id => false do |t|
和
execute "ALTER TABLE item_similarities ADD constraint pk_item_similarities " +
"PRIMARY KEY (item_id_1, item_id_2)"
现在,当我运行rake test
时,架构将被复制到测试数据库中,但不会在测试数据库中设置主键(item_id_1,item_id_2)。
有人可以帮助我们如何实现这一目标吗?
答案 0 :(得分:1)
Rails对复合主键没有太多支持。
尝试像这样转储数据库的sql结构:
rake db:structure:dump
它应该创建一个像db / development_structure.sql
这样的文件然后执行此操作将该文件加载到测试数据库中:
rake db:test:clone_structure
答案 1 :(得分:0)
Rails将其架构信息转储到db / schema.rb中。检查该文件,但您自己的SQL可能不会存在。您可以将其设置为dump sql,但我不知道是否包含您自己的SQL:
ActiveRecord::Base.schema_format = :sql