【发布时间】:2011-01-22 18:31:36
【问题描述】:
我正在编写一个迁移脚本来创建一个主键列名为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 命令才能获得我认为应该在一个命令中实现的功能。
关于如何优化这个有什么建议吗?
【问题讨论】:
标签: mysql optimization ruby-on-rails-3 migration