0

2 つの異なる移行で、同じ名前の 2 つの異なるテーブルにインデックスを追加しています。この移行は mysql では正常に機能しますが、インデックス名が既に存在することを示す slqite が中断されます。移行のいずれかからインデックス名を削除すると、両方で正常に機能します。誰かが見て、移行の何が問題なのかを確認してください。何か不足していますか?

 def up
    add_index :categories,          :category_mask, :name=> 'categories_pk'
  end
def up
  add_index     :category_mapping_by_ids, [:data_src_id, :category_id], :name=> 'categories_pk'
end

ありがとう

4

1 に答える 1

0

これは、同じインデックス名を使用しているためです (どの DBMS でも機能しないはずです。MySQL で機能する理由は不明です) categories_pk

試す:

def up
  add_index :categories, :category_mask, :name=> 'categories_pk'
end
def up
  add_index :category_mapping_by_ids, [:data_src_id, :category_id], :name=> 'categories_mapping_pk'
end
于 2013-09-06T16:02:53.113 に答える