如何使用Datamapper迁移调整postgreSQL DB中的列长度?

时间:2012-04-23 13:50:16

标签: ruby-on-rails-3 postgresql datamapper

我正在使用dm-migrations为我的数据库创建自定义迁移。

但是,我似乎无法找到修改列长度的示例。有人可以解释一下这是怎么做的?我在rails 3上使用postgresql数据库。

更新:

我尝试了以下内容:

migration 1, :modify_course_url_length do
  up do
    modify_table :hotels do
      change_column :url, String, :length => 255
    end
  end
end

但看起来我需要让change_column_type_statement方法起作用,因为它是postgresql db。

更新2:

似乎问题是输出的SQL是:

ALTER TABLE“hotels”ALTER COLUMN“url”VARCHAR(255)

虽然它需要

ALTER TABLE“酒店”ALTER COLUMN“url”TYPE VARCHAR(255)

有人对此有任何想法吗?

1 个答案:

答案 0 :(得分:1)

您可以为迁移编写原始SQL,就像这样......

migration 1, :modify_course_url_length do
  up do
    execute(<<-SQL)
    ALTER TABLE hotels ALTER COLUMN url TYPE VARCHAR(255)
    SQL
  end
end