我看了这些答案,它们似乎不起作用:
- 在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