我创建了一个名为Query的表,现在必须重命名它,因为我不能在模型中使用它,因为Query是一个保留字。我将其重命名为SupportQuery。
Query引用了UsersQuery
class CreateQueries < ActiveRecord::Migration[5.0]
def change
create_table :queries do |t|
t.string :name
t.timestamps
end
end
end
class CreateUsersQueries < ActiveRecord::Migration[5.0]
def change
create_table :users_queries do |t|
t.string :name
t.references :query, foreign_key: true
t.references :user, foreign_key: true
t.timestamps
end
end
end
这是我尝试重命名并重命名参考。
class RenameQueryTables < ActiveRecord::Migration[5.0]
def change
rename_column :users_queries, :query_id, :support_query_id
rename_table :queries, :support_queries
rename_table :users_queries, :user_support_queries
end
end
我收到外键约束。接下来我尝试删除引用然后再添加它。
class RenameQueryTables < ActiveRecord::Migration[5.0]
def change
remove_reference :users_queries, :query, foreign_key: true
rename_table :queries, :support_queries
rename_table :users_queries, :user_support_queries
remove_reference :user_support_queries, :support_query, foreign_key: true
end
end
但这会删除列中的当前数据。真的很感激任何帮助!