当我创建表 users 时,生成的表有一个名为 id 的列,定义为一个整数。
我尝试将其修改为 bigint, unsigned 如下:
change_column :users, :id, :integer, :limit => 8, :unsigned => true
确实将其更改为 bigint,但它不再是自动增量列(尽管它仍被标识为主索引,并且未设置为无符号(尽管 rails 告诉我迁移执行良好)
然后我尝试做:
change_column :users, :id, :integer, :limit => 8, :unsigned => true, :null => false, :auto_increment => true
Rails 表示迁移执行得很好,但没有任何改变。
我可以尝试类似:
change_column :users, :id, :primary_index
但这会让我从头开始
我也可以尝试使用 MySQL 代码执行“执行”语句,但我想保持迁移文件“干净”。有没有人遇到过这个问题?
顺便说一句,我还试图在另一列上将默认值设置为 NULL,在这里(和谷歌)进行了研究,但没有成功。
编辑:
在通过通用迁移作为表创建的一部分创建列“id”之后,似乎没有办法对其进行编辑。做到这一点的唯一方法是使用 MySQL 语法的“执行”语句。