我希望数据库迁移基本上是以下SQL:
ALTER TABLE `myTable` ADD COLUMN `id` INT AUTO_INCREMENT UNIQUE FIRST;
是否有正确的续集迁移?我已经与以下内容非常接近了,但它似乎并不是我想要的:
Sequel.migration do
change do
alter_table :my_table do
add_column :id, Bignum, null: false, unique: true
end
end
end
具体来说,似乎缺少自动增量,并且不会是第一列。
答案 0 :(得分:1)
这应该有效:
DB.add_column :myTable, :id, Bignum, null: false, unique: true, :auto_increment=>true
请注意,这并不能为您提供FIRST
。如果您需要FIRST
,则必须使用原始SQL:
DB.run "ALTER TABLE `myTable` ADD COLUMN `id` INT AUTO_INCREMENT UNIQUE FIRST"
另一个区别是你的SQL没有指定NOT NULL
,但你的续集代码确实如此。