Rails+PostgreSQLのmigrationでstringを指定する時はlimitをつけた方が良い
Railsのmigration時にstring型でtableを定義するとvarcharになる。MySQLの場合はvarchar(255)になるので問題ないがPostgreSQLの場合はvarcharになる。 PostrgreSQLのドキュメントを読むと下記の通り。
長さを指定する場合、nはゼロより大きな値でなければならず、10,485,760を超えることはできません。 長さ指定子なしでcharacter varying (またはvarchar)が使用された場合、この型は任意の長さの文字列を受け入れます。
ということで長さ指定なしだと任意の長さの文字列を受け取れるようになってしまう。migration時にlimitをつければvarchar(n)となるので問題ない。