gpt4 book ai didi

ruby-on-rails - Rails 迁移和列更改

转载 作者:行者123 更新时间:2023-12-04 06:14:44 31 4
gpt4 key购买 nike

使用 sqlite3 进行本地开发。产品数据库是 MySql。

有一个用于列更改的迁移文件。

class ChangeDateToOrders < ActiveRecord::Migration
def self.up
change_column(:orders, :closed_date, :datetime)
end

def self.down
change_column(:orders, :closed_date, :date)
end
end

错误说 index name 'temp_index_altered_orders_on_closed_location_id_and_parent_company_id' on table 'altered_orders' is too long; the limit is 64 characters
知道 sqlite 的索引名称有限制,但是有解决方法吗?

编辑
我使用的解决方法。
class ChangeDateToOrders < ActiveRecord::Migration
def self.up
remove_index(:orders, [:closed_location_id, :parent_company_id])
change_column(:orders, :closed_date, :datetime)
add_index(:orders, [:closed_location_id, :parent_company_id], :name => "add_index_to_orders_cli_pci")
end

def self.down
remove_index(:orders, :name => "add_index_to_orders_cli_pci")
change_column(:orders, :closed_date, :date)
add_index(:orders, [:closed_location_id, :parent_company_id])
end
end

最佳答案

就个人而言,我喜欢我的生产和开发环境尽可能匹配。它有助于避免陷阱。如果我要部署 MySQL,我也会使用 MySQL 运行我的开发环境。此外,我对 SQLite 也不太熟悉,所以这种方法吸引了我懒惰的一面——我只需要知道一个数据库的来龙去脉。

关于ruby-on-rails - Rails 迁移和列更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5568367/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com