Heroku迁移:类型"bytea"不允许使用类型修饰符

ssc*_*rus 8 migration postgresql ruby-on-rails heroku ruby-on-rails-3

我正在Heroku上运行一些迁移,我遇到了这个问题.我在我的一次迁移中有这一行来创建一个新表:

t.binary :file, :limit => 10.megabytes
Run Code Online (Sandbox Code Playgroud)

Heroku给了我这个PostgreSQL错误:

An error has occurred, this and all later migrations canceled:

PGError: ERROR:  type modifier is not allowed for type "bytea"
LINE 1: ..."file" bytea(10485760)...
                                                         ^
: CREATE TABLE "files" ("id" serial primary key, "file" bytea(10485760), "created_at" timestamp, "updated_at" timestamp) 
Run Code Online (Sandbox Code Playgroud)

如何更改我的迁移,以便它与MySQL和Postgre一起使用?

ssc*_*rus 16

来自Heroku的文档:

二进制字段限制

原因:PostgreSQL不限制二进制字段.使用:limit选项添加:binary字段的任何迁移都会引发语法错误.

解决方案:如果可能,请省略:二进制字段的限制 - 或者在运行之前测试数据库.