我的谷歌搜索能力可能不够强,因为我无法找到任何关于Rails应用程序中字符串列的默认限制的信息(托管在Heroku上,使用PostgreSQL作为数据库)。
如果有帮助,将不胜感激!
我的谷歌搜索能力可能不够强,因为我无法找到任何关于Rails应用程序中字符串列的默认限制的信息(托管在Heroku上,使用PostgreSQL作为数据库)。
如果有帮助,将不胜感激!
如果没有指定具体的限制,ActiveRecord会使用varchar(255)
(或者更严谨地说,character varying (255)
)。你可以随时使用psql
进入PostgreSQL并输入\d your_table
来查看PostgreSQL中的表。
我不认为默认值在任何地方都有明确说明,但是在源代码这里可以找到它:
NATIVE_DATABASE_TYPES = {
:primary_key => "serial primary key",
:string => { :name => "character varying", :limit => 255 },
#...
最接近规范的是在迁移指南中:
这些将被映射到适当的底层数据库类型。例如,对于MySQL,
:string
会被映射为VARCHAR(255)
。
但这并不适用于PostgreSQL,并且也不完全是一个保证。
顺便提一下,如果您正在使用PostgreSQL,您几乎总是应该直接使用:text
,并假装:string
不存在。PostgreSQL 在内部将它们视为相同的,除了对varchar
需要进行长度检查。关于这个问题还有更多讨论,请参阅我在另一个答案中的回答:在Rails中将列类型更改为更长的字符串。