Rails - “heroku db:push”命令失败

时间:2012-09-21 00:21:59

标签: ruby-on-rails ruby sqlite heroku

我正在尝试将我的应用程序从我的开发环境推送到heroku上的生产环境。我已经使用

传输了所有代码
git push heroku master

现在我需要推送我的数据库,我正在尝试这个

heroku db:push

但它失败了,我在控制台收到这条消息。

ruby-1.9.3-p194@app0907api @~/Documents/myapp06     
>heroku db:push
/Users/hj/.rvm/gems/ruby-1.9.3-p194@app0907api/gems/sqlite3-1.3.6/lib/sqlite3/sqlite3_native.bundle: [BUG] Segmentation fault
ruby 1.8.7 (2012-02-08 patchlevel 358) [universal-darwin12.0]

这有点奇怪,因为我的应用程序使用postgres进行开发和生产和测试,我没有使用过sqlite我没有为sqlite3安装任何宝石

可能出现什么问题?


 source 'https://rubygems.org/'

 gem 'rails', '3.2.8'



 gem 'rails-api'

 gem 'pg'

 gem 'taps'

 gem 'thin'

 gem 'foreman'

 gem 'rabl'



 gem 'paperclip', '~>3.2.0'
 gem 'aws-sdk', '~>1.3.4'

 group :development do

 gem 'annotate', ">=2.5.0"
 gem 'debugger'
 end

解决方案:

在终端控制台上键入以下行:

 gem install heroku
 sudo gem install taps

这允许我运行命令:

heroku db:push

...但是现在,在发送数据库时,我收到了这个错误:

 Saving session to push_201209202159.dat..
 !!! Caught Server Exception
 HTTP CODE: 500
 Taps Server Error: PGError: ERROR: time zone displacement out of range: "2012-09-18 12:00:00.000000+5894853600"
 LINE 1: ...ated_at") VALUES (45, '37.785834', '-122.406417', '2012-09-1...

2 个答案:

答案 0 :(得分:3)

更新:导入/导出PG数据的功能现在是heroku pg:push and heroku pg:pull

的CLI的一部分

我强烈建议使用Heroku CLI的pg:transfer插件。您可以使用插件执行许多操作,包括transferring data from your local environment up to the Heroku environment

只需在两个postgres数据库之间进行转换,

db:pushdb:pull非常脆弱。要从本地转移到远程,请执行以下操作以安装插件并传输数据:

$ heroku plugins:install https://github.com/ddollar/heroku-pg-transfer
$ heroku pg:transfer --from $DATABASE_URL --to HEROKU_POSTGRESQL_JADE_URL

--from $DATABASE_URL标志表示从env变量DATABASE_URL拉出作为本地数据库位置并推送到Heroku应用程序的HEROKU_POSTGRESQL_JADE_URL数据库。您可以使用heroku config找到您的Heroku数据库名称:

$ heroku config | grep POSTGRES
HEROKU_POSTGRESQL_JADE_URL: postgres://ads8a8d9asd:al82kdau78kja@ec2-23-23-237-0.compute-1.amazonaws.com:5432/resource123

答案 1 :(得分:-1)

你可能错过了一些步骤。

  1. bundle install

  2. git add .

  3. git commit -m 'your commit message goes here'

  4. git push heroku

  5. heroku run rake db:migrate

  6. 此外:

    1. sudo gem install heroku

    2. sudo gem install taps

    3. 编辑:

      解决休息:

      $ rvm install ruby-1.9.2-p318 $ rvm use ruby-1.9.2-p318 $ heroku db:push