我正在使用heroku,并且这样做,我正在经历我的第一次进入postgresql。也许我在开发过程中从未遇到它,但我无法将条目保存到我的数据库中超过255个字符。有没有解决的办法?目前我只是使用字符串来存储消息数据。
其次,如果确实有一种存储超过255个字符的方法,是否有一种很好的方法可以使用迁移将我的消息字符串转换为此形式?我的应用程序目前正在使用中。
谢谢!
答案 0 :(得分:23)
在迁移类型上使用text
代替string
。
更改迁移
script/generate migration change_string_to_text
change_column :model, :attribute, :text
rake db:migrate
答案 1 :(得分:9)
为了扩展@ Codeglot的答案,:text
用于(基本上)无限长度的字符串。带:string
选项的limit:1234
会将字符串限制为该长度。在Postgres上,:string, limit:nil
实际上与:text
同义。虽然一些数据库以不同的方式存储VARCHAR,VARCHAR(n)和TEXT类型,导致性能方面的考虑,但Postgres以相同的方式存储它们。
因此,如果您想要超过255个字符但不能完全无限制,则可以使用:string, limit:1234
。或者,您可以使用:text
并通过验证来限制长度。