Heroku DB:推动问题

时间:2011-09-12 16:08:05

标签: ruby-on-rails database ruby-on-rails-3 heroku

我已阅读了很多帖子并用Google搜索,但在我执行操作时找不到要检查以解决以下错误的一组内容:

heroku db:push

我读过这个答案:Rails migrations over an existing database

但它不能解决我遇到的问题。我目前收到以下错误:

messages:      100% |==========================================| Time: 00:00:00
numbers:         0% |                                          | ETA:  --:--:--
Saving session to push_201109120849.dat..
!!! Caught Server Exception
HTTP CODE: 500
Taps Server Error: PGError: ERROR:  integer out of range

我的Numbers迁移看起来像这样:

class CreateNumbers < ActiveRecord::Migration
  def self.up
    create_table :numbers do |t|
      t.integer :inbound_num
      t.boolean :assigned

      t.timestamps
    end
  end

  def self.down
    drop_table :numbers
  end
end

我使用整数数据类型来保存手机号码。我不确定读这篇文章是个好主意:What datatype should be used for storing phone numbers in SQL Server 2005?

事情是数据在本地运行良好,所以我认为我没有选择可怕的数据类型。

我推动的数据库中的数字看起来像这样:

447786201383

447786201387

447786201389  等...

提前非常感谢!

1 个答案:

答案 0 :(得分:1)

在您的迁移中,您有类似

的内容
t.integer :field

但是在heroku上使用的Postgresql的默认值是4个字节

所以你应该改变你的bigints的内注。

为此,请使用:limit。例如:

t.integer :field, :limit => 8