在开发中read()
工作正常,生成.sqlite3文件。在生产中,rake db:migrate
将表添加到实际的MySQL数据库中,我得到了错误。
rake db:migrate
很明显,索引名-- create_table(:category_item_values)
rake aborted!
StandardError: An error has occurred, all later migrations canceled:
Index name 'index_category_item_values_on_category_item_key_id' on table 'category_item_values'
already exists/site/db/migrate/20151218040123_create_category_i
tem_values.rb:3:in `change'
Tasks: TOP => db:migrate
已经存在,但我不知道要解决什么问题以及在这种情况下命名约定如何工作。
这里是20151218040123_create_category_item_values.rb
index_category_item_values_on_category_item_key_id
和
20160430043022_add_foreign_key_cat_keys_to_category_item_values.rb
class CreateCategoryItemValues < ActiveRecord::Migration
def change
create_table :category_item_values do |t|
t.string :key
t.integer :key_type
t.integer :guide_id
t.integer :category_id
t.text :value
t.belongs_to :category_item_key, index: true
t.belongs_to :category_item, index: true
t.timestamps null: false
end
add_foreign_key :category_item_values, :category_items
add_index :category_item_values, :guide_id
add_index :category_item_values, :category_id
add_index :category_item_values, :key_type
add_index :category_item_values, :key
end
end
加20160111231051_create_category_item_keys.rb只是复制就在那里
class AddForeignKeyCatKeysToCategoryItemValues < ActiveRecord::Migration
def change
add_foreign_key :category_item_values, :category_item_keys
end
end
这里是模式文件中的class CreateCategoryItemKeys < ActiveRecord::Migration
def change
create_table :category_item_keys do |t|
t.string :name
t.integer :key_type
t.integer :submitted_by
t.integer :approved_by
t.integer :guide_id
t.belongs_to :category, index: true
t.timestamps null: false
end
add_foreign_key :category_item_keys, :categories
add_index :category_item_keys, :name, unique: true
add_index :category_item_keys, :key_type
end
end
表
category_item_values
发生冲突导致此错误?