我收到错误
PGError: ERROR: type modifier is not allowed for type "text"
LINE 1: ...ng(255), "desc" character varying(255), "content" text(255),...
当我做一个heroku run rake db:reset
据我所知,postgresql需要一个无限类型的'text',在我最新的迁移文件中我有...
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运行rake db:reset但我一直收到这个错误。我错过了什么吗?感谢
答案 0 :(得分:4)
您应该可以完全取消: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
(AKA varchar
)列类型,PostgreSQL会在内部对它们进行相同的处理。唯一一次你应该烦扰varchar / :string
的是你的数据完整性要求字符串大小的特定上限。