我正在编写一个迁移脚本,以创建一个名为guid
的主键列,并且该列是VARCHAR(25)
。问题是我感觉我需要付出双倍的努力才能完成应该在一步中完成的事情。
如果我运行:
create_table(:global_feeds, :primary_key => 'guid') do |t|
t.string :guid, :limit => 25
t.text :title
t.text :subtitle
...
t.timestamps
end
我拿到了一张名为
guid
的主键表,没有叫做id
的列(这正是我所想要的)。然而问题在于,guid
列是一个带有自动增量的INT(11)
类型。因此,我需要运行一个额外的命令:change_column :global_feeds, :guid, :string, :limit => 25
似乎需要运行两个SQL命令才能获得我认为应该在一个命令中实现的结果,这有点复杂。
有没有优化的建议?