gpt4 book ai didi

ruby-on-rails - Rails 迁移,从字符串转换为枚举

转载 作者:行者123 更新时间:2023-12-02 07:24:23 24 4
gpt4 key购买 nike

如果我有一个将“类型”存储为字符串的生产数据库,但我想将该列转换为 enum 的整数.

我用谷歌搜索/搜索过,我发现我可以 CAST ,但不确定那到底是做什么的。

如果不难,我很乐意使用 rails enum ,但除此之外,也许我应该坚持我的字符串模式......

请指教!

最佳答案

您可以重命名现有列,创建一个名为“类型”(整数)的新列,然后编写一个脚本在新列中存储适当的整数值,然后删除旧列。

迁移将如下所示:

class FixTypes < ActiveRecord::Migration
def change
rename_column :table_name, :types, :old_types
add_column :table_name, :types, :integer
end
end

然后编写一个脚本,根据“old_types”设置“types”的值:
Model.all.each do |entry|
entry.types = %w(status1 status2 status3 status4).index(entry.old_types)
entry.save!
end

然后删除“old_types”列。

关于ruby-on-rails - Rails 迁移,从字符串转换为枚举,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35163804/

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