2012-09-21 131 views
2

我试图将我的应用程序推到我的开发环境的heroku上的生产环境。伊夫转移使用Rails - “heroku db:push”命令失败

git push heroku master 

现在我需要把我的数据库,我试着这个

heroku db:push 

但它的失败和Im在控制台收到此消息的所有我的代码。

[email protected] @~/Documents/myapp06  
>heroku db:push 
/Users/hj/.rvm/gems/[email protected]/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 

......但现在,在发送了DB,我得到这个错误:

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... 
+0

请发表您的'Gemfile' –

+0

发布的Gemfile以上,由于 –

回答

3

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

我强烈建议使用pg:transfer插件Heroku的CLI的。你可以用插件做很多事情,包括transferring data from your local environment up to the Heroku environment

db:pushdb:pull对于在两个postgres数据库之间传输非常脆弱。若要从本地转移到远程执行以下操作安装插件并传输数据:

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

--from $DATABASE_URL旗说,从环境变量DATABASE_URL作为本地数据库的位置推拉你的Heroku应用程序的HEROKU_POSTGRESQL_JADE_URL数据库。您可以使用heroku config找到你的Heroku数据库名称:

$ heroku config | grep POSTGRES 
HEROKU_POSTGRESQL_JADE_URL: postgres://ads8a8d9asd:[email protected]:5432/resource123 
+0

非常感谢! –

+0

但我如何转移mysql或sqllite数据库? – antpaw

-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

另外:

  1. sudo gem install heroku

  2. sudo gem install taps

编辑:

为了解决休息:

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

+0

您好感谢。 我已经尝试了这些步骤,但是这个问题与这篇文章有关: “http://stackoverflow.com/questions/12118173/heroku-dbpush-taps-wrong-ruby”在这里我认为。但是这篇文章没有找到可行的答案。 –

+0

你似乎错过了'group:development'中的'sqlite'。请尝试我更新的答案莉娅。 –

+0

感谢您的回答,我尝试过,但没有奏效。另外,我不认为在RVM中使用sudo是一种好的做法。 –