在heroku上的PostgreSQL数据库中存储超过255个字符

我正在使用heroku,并且这样做,我正在经历我的第一次进入postgresql。 也许我在开发过程中从未遇到它,但我无法将条目保存到我的数据库中超过255个字符。 有没有解决的办法? 目前我只是使用字符串来存储消息数据。

其次,如果确实有一种存储超过255个字符的方法,是否有一种很好的方法可以使用迁移将我的消息字符串转换为此forms? 我的应用程序目前正在使用中。

谢谢!

在迁移类型上使用text而不是string


要更改迁移

  1. script/generate migration change_string_to_text
  2. change_column :model, :attribute, :text
  3. rake db:migrate

只是为了扩展@ Codeglot的答案, :text是(基本上)无限长度的字符串。 :string具有限制的字符串limit:1234选项将字符串限制为该长度。 在Postgres上,a :string, limit:nil实际上是:text同义词。 虽然一些数据库以不同的方式存储VARCHAR,VARCHAR(n)和TEXT类型,导致性能方面的考虑,但Postgres以相同的方式存储它们。

因此,如果您想要超过255个字符但不是完全无限制,则可以使用:string, limit:1234 。 或者,您可以使用:text并通过validation来限制长度。