我需要帮助来完成使用rails g migration命令向资源添加数组列的步骤。我有一个postgresql数据库。我需要创建一个字符串数组和另一个整数数组。我想要它,以便在我的schema.rb文件中。。。

create_table "streams", force: true do |t|
t.array   "ids"     #strings
t.array   "lengths" #integers

最佳答案

您必须创建新的迁移,以便rails g migration change_column_type_of_ids_and_length。然后编辑生成的迁移文件。
首先尝试使用change_column方法。如果这有效,您的数据将被保留。否则,尝试步骤2

change_column :streams , :ids , :string , array: true , default: []
change_column :streams , :lengths, :integer ,array: true , default: []

在这里,我们要删除列以便数据,然后创建新列。
remove_column :streams, :ids
remove_column :streams, :lengths
add_column :streams , :ids , :string ,array: true , default: []
add_column :streams , :lengths , :integer ,array:  true , default: []

10-07 21:17