如何在现有表上的特定位置中的铁轨迁移中添加一列



我看了这些答案,它们似乎不起作用:

  • 在Rails迁移(MySQL(中,您可以指定新列应该是什么位置?
  • 在Rails中的另一列之前添加一列
  • 轨道上的红宝石在特定列名称之后添加一列问

我检查了API文档,我找不到第一个引用:。

是否可以在Rails 5中现有表上的特定位置中添加一列?我似乎无法工作。

编辑:这是迁移脚本

class CreatePrivileges < ActiveRecord::Migration[5.1]
    def change
      create_table :privileges do |t|
        t.boolean :no_site_access
        t.boolean :edit_schedule
        t.timestamps
      end
    end
  end
class AddUserIdToPrivileges < ActiveRecord::Migration[5.1]
    def change
      add_column :privileges, :user_id, :integer, first: true
      add_index :privileges, :user_id
    end
end

和db/schema.rb

ActiveRecord::Schema.define(version: 20180324160753) do
      create_table "privileges", force: :cascade do |t| 
        t.boolean "no_site_access"
        t.boolean "edit_schedule"
        t.datetime "created_at", null: false
        t.datetime "updated_at", null: false
        t.integer "user_id"
        t.index ["user_id"], name: "index_privileges_on_user_id"
      end 
    end 

我知道我可以将USER_ID移至架构中列表的顶部,或者首先列出了发电机,但我正在尝试学习,我想知道是否有一种方法迁移。

您可以使用after: :a_field

  add_column :privileges, :user_id, :integer, after: :no_site_access

最新更新