LONGTEXT在PGSQL和MySQL的迁移中有效

时间:2011-02-09 12:38:15

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

我正在开发一个Ruby on Rails应用程序,它在LONGTEXT列中存储了大量文本。我注意到当部署到Heroku(使用PostgreSQL)时,由于两个列大小太大,我得到插入异常。为了在PostgreSQL中获得标记的大文本列类型,是否必须要做一些特殊的事情?

这些在Rails迁移中被定义为“字符串”数据类型。

3 个答案:

答案 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'重置数据库。如果你的数据库中已有重要数据,那就不好玩了。