ruby-on-rails - 使用 rails 的 heroku pg 错误,说 "text"不允许使用类型修饰符

标签 ruby-on-rails postgresql heroku

我得到了错误

PGError: ERROR:  type modifier is not allowed for type "text"
LINE 1: ...ng(255), "desc" character varying(255), "content" text(255),...

当我执行 heroku 运行 rake db:reset 时

我知道 postgresql 需要无限类型的“文本”并且在我最新的迁移文件中我有...

class ChangeLessonsTable < ActiveRecord::Migration
    def change
        change_table :lessons do |t|
            t.change        :content, :text, :limit => nil
        end
    end
end

虽然我仍然不断收到错误。任何想法为什么?我运行了 rake db:reset、rake db:migrate 和 git push 以确保我的本地数据库已更改。然后我运行 git heroku push 和 heroku run rake db:reset 但我一直收到那个错误。我错过了什么吗?谢谢

最佳答案

你应该能够完全放弃 :limit:

class ChangeLessonsTable < ActiveRecord::Migration
    def change
        change_table :lessons do |t|
            t.change :content, :text
        end
    end
end

如果这不起作用,那么您可以尝试单独的向上和向下操作:

def up
    change_column :lessons, :content, :text
end
def down
    change_column :lessons, :content, :string
end

顺便说一句,如果你的目标是 PostgreSQL,你应该只使用 :text 而忘记 :string(又名 varchar)列类型,PostgreSQL 在内部对它们一视同仁。唯一需要为 varchar/:string 操心的时候是当您的数据完整性需要字符串大小的特定上限时。

关于ruby-on-rails - 使用 rails 的 heroku pg 错误,说 "text"不允许使用类型修饰符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10202622/

相关文章:

css - 在 label_method 的 simple_form 部分 CSS 中

python-3.x - SQLAlchemy:反射(reflect)现有数据库的表无法正常工作

ruby-on-rails - Authlogic 在 Heroku 上抛出错误

ruby-on-rails - 如何测试 API 错误?

ruby-on-rails - 无方法错误 : undefined method `digest'

python - 如何从 postgres/mysql 游标对象获取数据库名称

ruby - Heroku 应用程序崩溃,错误 H10,open.rb 中的错误文件描述符 (Errno::EBADF)

ruby-on-rails - Rails + Angular + sqlite3部署

javascript 使用单个函数显示多个 Highcharts

postgresql - 可以使用 Postgres 作为文档数据库吗?