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

god*_*yan 10 sql postgresql ruby-on-rails heroku

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

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

谢谢!

the*_*gah 23

使用text而不是string迁移类型.


更改迁移

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

  • 迁移是美丽的:) (2认同)
  • 在ActiveRecord 3.0.9中,我不得不使用`change_column:model,:attribute,:text,:limit => nil`,否则`db/schema.rb`将包含`t.text"属性",:limit => 255 `迁移后. (2认同)

Noa*_*man 9

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

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