我正在开发一个Ruby on Rails应用程序,它在LONGTEXT列中存储了大量文本。我注意到当部署到Heroku(使用PostgreSQL)时,由于两个列大小太大,我得到插入异常。为了在PostgreSQL中获得标记的大文本列类型,是否必须要做一些特殊的事情?
这些在Rails迁移中被定义为“字符串”数据类型。
答案 0 :(得分:2)
如果你想在PostgreSQL中使用longtext数据类型,只需创建它。 domain将执行:
CREATE DOMAIN longtext AS text;
CREATE TABLE foo(bar longtext);
答案 1 :(得分:1)
在PostgreSQL中,所需类型为text
。请参阅文档的Character Types部分。
答案 2 :(得分:0)
将模型数据类型更新为“text”的新迁移应该可以完成。别忘了重启数据库。如果您仍有问题,请使用“heroku console”查看您的模型,然后输入型号名称。
如果db restart不能解决问题,我想出的唯一方法是使用'heroku pg:reset'重置数据库。如果你的数据库中已有重要数据,那就不好玩了。