【问题标题】:How do I adjust a column length in postgreSQL DB with a Datamapper migration?如何使用 Datamapper 迁移调整 postgreSQL DB 中的列长度?
【发布时间】:2012-05-04 03:25:14
【问题描述】:

我正在使用 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 数据库。

更新 2:

看来问题是输出的SQL是:

ALTER TABLE "hotels" ALTER COLUMN "url" VARCHAR(255)

虽然需要

ALTER TABLE "hotels" ALTER COLUMN "url" TYPE VARCHAR(255)

有人对此有什么想法吗?

【问题讨论】:

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


    【解决方案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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-09-13
      • 2015-04-23
      • 2013-09-07
      • 1970-01-01
      • 2011-02-19
      • 2018-09-14
      • 2020-09-11
      • 2013-10-13
      相关资源
      最近更新 更多