我在两个实体,数据中心和项目之间有多对多的链接表, 在遗留代码中。我发现,这真的是一对多的关系。
作为清理关系的第一步,我想提出一个独特的索引 在其中一个领域。
现在我收到以下错误:
has_and_belongs_to_many连接表(datacenters_projects)中不允许使用主键。
我正在使用在ruby 1.8.7p174和mysql Ver 14.12 Distrib 5.0.77上运行的Rails 2.3.8。
这不是主键,它只是一个独特的索引。 我想这是一个候选键,但我还没有确定它是一个主键。
我不知道为什么mysql认为这是一个主键。 我不知道为什么ActiveRecord会反对a中的链接表 has_and_belongs_to_many有一个主键。
但我真正的问题是,“我有什么办法可以把一个独特的索引放在上面 其中一个字段,没有ActiveRecord给我一个错误?“
有什么方法可以告诉add_index这不是主键吗?
答案 0 :(得分:1)
我不确定为什么会失败。您应该能够在迁移中使用SQL来解决它,例如:
ActiveRecord::Base.connection.execute("CREATE UNIQUE INDEX project_id_index ON datacenters_projects (project_id)")
答案 1 :(得分:0)