将数组列添加到资源

use*_*037 2 migration arrays postgresql ruby-on-rails

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

create_table "streams", force: true do |t|
t.array   "ids"     #strings
t.array   "lengths" #integers
Run Code Online (Sandbox Code Playgroud)

Par*_*war 6

您必须创建新的迁移rails g migration change_column_type_of_ids_and_length.然后编辑生成的迁移文件.

  1. 首先尝试使用change_column方法.如果这样做,您的数据将被保留.否则,请尝试第2步

    change_column :streams , :ids , :string , array: true , default: []
    change_column :streams , :lengths, :integer ,array: true , default: []
    
    Run Code Online (Sandbox Code Playgroud)
  2. 在这里,我们删除列以获取数据,然后创建新数据.

    remove_column :streams, :ids
    remove_column :streams, :lengths
    add_column :streams , :ids , :string ,array: true , default: []
    add_column :streams , :lengths , :integer ,array:  true , default: []
    
    Run Code Online (Sandbox Code Playgroud)