2012-09-21 132 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是一種好的做法。 –