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

时间:2011-02-12 04:39:27

标签: ruby-on-rails ruby-on-rails-3 postgresql migration heroku

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

t.binary :file, :limit => 10.megabytes

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) 

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

1 个答案:

答案 0 :(得分:16)

来自Heroku的文档:

二进制字段限制

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

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