ruby-on-rails-3 - 如何使用 Datamapper 迁移调整 postgreSQL 数据库中的列长度?

标签 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 数据库。

更新 2:

看来问题是输出的 SQL 是:

ALTER TABLE "酒店"ALTER COLUMN "url"VARCHAR(255)

需要的时候

ALTER TABLE "酒店"ALTER COLUMN "url"TYPE VARCHAR(255)

有人对此有任何想法吗?

最佳答案

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

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

关于ruby-on-rails-3 - 如何使用 Datamapper 迁移调整 postgreSQL 数据库中的列长度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10281864/

相关文章:

ruby-on-rails - "You are trying to cache a Ruby object which cannot be serialized to memcached."

ruby-on-rails - 一次加入 2 个元素

ruby-on-rails - 出现错误 - 类型 "json"不存在 - 在 rake db 迁移期间在 Postgresql 中

ruby - Datamapper 与多个键有 n 个关系

ruby-on-rails - 为什么 ORM 不自动在内存中设置反向关联?

ruby-on-rails - 嵌套形式和一对一关系

ruby (在 Rails 上)正则表达式 : removing thousands comma from numbers

postgresql - Postgres 9.6 的 Datadog 配置

ruby-on-rails - 创建一个无数据库的 rails 模型,作为在 elasticsearch 中索引数据的 View

ruby - 限制列/字段时如何阻止DataMapper进行双重查询?