3

私が作りましたheroku db:push

最初はうまくいった

Sending schema
Schema:        100% |==========================================| Time: 00:00:06
Sending indexes
schema_migrat: 100% |==========================================| Time: 00:00:01
Sending data
3 tables, 8 records
schema_migrat: 100% |==========================================| Time: 00:00:00
users:           0% |                                          | ETA:  --:--:--
Saving session to push_201204102202.dat..

これらは、push_201204102202.dat ファイルの内容です。

    {"klass":"Taps::Push","database_url":"sqlite://db/development.sqlite3","remote_url":"http://heroku:osui59a24am79x@taps19.heroku.com","session_uri":"/sessions/7436189125","stream_state":{},"completed_tables":["schema_migrations"],"table_filter":null,"local_tables_info":{"schema_migrations":2,"users":4,"microposts":2}}

その後、トラブルが始まりました:

    !!! キャッチされたサーバー例外
    HTTP コード: 500
    Taps サーバー エラー: PGError: エラー: タイム ゾーンの変位が範囲外です: "2012-04-10 12:00:00.000000+5894467200"



    ["/app/.bundle/gems/ruby/1.9.1/gems/sequel3.20.0/lib/sequel/adapters/postgres.rb:175:`async_exec' 内", "/app/.bundle/gems/ruby /1.9.1/gems/sequel-3.20.0/lib/seq
uel/adapters/postgres.rb:175:in `ブロック (2 レベル) in execute'","/app/.bundle/gems/ruby/1.9.1/gems/sequel-.20.0/lib/sequel/database/ logging.rb:28:in`log_yield'","/app/.bundle/gems/ruby/1.9.1/gems/sequel-.20.0/lib/sequel/adapters/postgres.rb:175:in `block in execute'", "/app/.bundle/gems/ruby/1.9.1/gems/sequel-.20.0/lib/sequel/adapters/postgres.rb:158:in`check_disconnect_errors'","/app/.bundle /gems/ruby/1.9.1/gems/sequel-3.20.0/lib/sequel/adapters/postgres.rb:175:in `execute'","/app/.bundle/gems/ruby/1.9.1/ gems/sequel-.20.0/lib/sequel/adapters/postgres.rb:240:in `ブロック (2 レベル) in execute'", "/app/.bundle/gems/ruby/1.9.1/gems/sequel- 3.20.0/lib/sequel/connection_pool/threaded.rb:71:in`hold'","/app/.bundle/gems/ruby/1.9.1/gems/sequel-3.20.0/lib/sequel/database/connecting.rb:226:「同期」", "/app/.bundle/gems/ruby/1.9.1/gems/sequel-3.20.0/lib/sequel/adapters/postgres .rb:240:in `実行中のブロック'", "/app/.bundle/gems/ruby/1.9.1/gems/sequel-3.20.0/lib/sequel/adapters/postgres.rb:261:in ` check_database_errors'", "/app/.bundle/gems/ruby/1.9.1/gems/sequel-3.20.0/lib/sequel/adapters/postgres.r
b:238:「execute」で」、「/app/.bundle/gems/ruby/1.9.1/gems/sequel-3.20.0/lib/sequel/database/query.rb:71:「execute_dui」で」 , "/app/.bundle/gems/ruby/1.9.1/gems/sequel-3.20.0/lib/sequel/dataset/actions.rb:552:`execute_dui' で", "/app/.bundle/gems /ruby/1.9.1/gems/sequel-3.20.0/lib/sequel/dataset/actions.rb:243:in `block (2 l
evels) in import'", "/app/.bundle/gems/ruby/1.9.1/gems/sequel-3.20.0/lib/sequel/dataset/actions.rb:243:in `each'", "/ app/.bundle/gems/ruby/1.9.1/gems/sequel-3.2
0.0/lib/sequel/dataset/actions.rb:243:`block in import'", "/app/.bundle/gems/ruby/1.9.1/gems/sequel-3.20.0/lib/sequel/database /query.rb:223:in `_transaction'
", "/app/.bundle/gems/ruby/1.9.1/gems/sequel-3.20.0/lib/sequel/database/query.rb:209:in `トランザクション内ブロック'", "/app/. bundle/gems/ruby/1.9.1/gems/sequel-3.20.
0/lib/sequel/connection_pool/threaded.rb:84:`hold' で", "/app/.bundle/gems/ruby/1.9.1/gems/sequel-3.20.0/lib/sequel/database/connecting .rb:226:in `同期'"
, "/app/.bundle/gems/ruby/1.9.1/gems/sequel-3.20.0/lib/sequel/database/query.rb:207:`トランザクション'", "/app/.bundle/gems /ruby/1.9.1/gems/sequel-3.20.0/lib/sequ
el/dataset/actions.rb:243:`import' で"、"/app/lib/taps/data_stream.rb:315:`import_rows' で"、"/app/lib/taps/data_stream.rb:158: in `fetch_remote_in_server'", "/a
pp/lib/taps/server.rb:114:in `block (3 レベル) in '", "/app/lib/taps/utils.rb:161:in `call'", "/app/lib/taps /utils.rb:161:in `server_error_handlin
g'", "/app/lib/taps/server.rb:112:in `block (2 レベル) in '", "/app/lib/taps/db_session.rb:15:in `block in conn'" 、「/app/.bundle/gems/ruby/1.9.1/g
ems/sequel-3.20.0/lib/sequel/database/connecting.rb:76:in `connect'", "/app/.bundle/gems/ruby/1.9.1/gems/sequel-3.20.0/lib /sequel/core.rb:119:in `connect'", "/a
pp/lib/taps/db_session.rb:14:in `conn'", "/app/lib/taps/server.rb:111:in `block in'", "/app/.bundle/gems/ruby/ 1.9.1/gems/sinatra-1.0/lib/sinatra/
base.rb:865:in `call'", "/app/.bundle/gems/ruby/1.9.1/gems/sinatra-1.0/lib/sinatra/base.rb:865:in `block in route'" 、「/app/.bundle/gems/ruby/1.9.1/gems/sinatra-
1.0/lib/sinatra/base.rb:521:in `instance_eval'", "/app/.bundle/gems/ruby/1.9.1/gems/sinatra-1.0/lib/sinatra/base.rb:521:in `route_eval'", "/app/.bundle/gems/rub
y/1.9.1/gems/sinatra-1.0/lib/sinatra/base.rb:500:in `ブロック (2 レベル) でルート!'", "/app/.bundle/gems/ruby/1.9.1/ gems/sinatra-1.0/lib/sinatra/base.rb:497:in `ca
tch'", "/app/.bundle/gems/ruby/1.9.1/gems/sinatra-1.0/lib/sinatra/base.rb:497:in `ルート内ブロック!'", "/app/.bundle /gems/ruby/1.9.1/gems/sinatra-1.0/lib/sinatra/
base.rb:476:in `each'", "/app/.bundle/gems/ruby/1.9.1/gems/sinatra-1.0/lib/sinatra/base.rb:476:in `route!'", "/app/.bundle/gems/ruby/1.9.1/gems/sinatra-1.0/lib/
sinatra/base.rb:601:in `dispatch!'", "/app/.bundle/gems/ruby/1.9.1/gems/sinatra-1.0/lib/sinatra/base.rb:411:in `block in call!'", "/app/.bundle/gems/ruby/1.9.1/
gems/sinatra-1.0/lib/sinatra/base.rb:566:in `instance_eval'", "/app/.bundle/gems/ruby/1.9.1/gems/sinatra-1.0/lib/sinatra/base.rb :566:in `block in invoke'", "/ap
p/.bundle/gems/ruby/1.9.1/gems/sinatra-1.0/lib/sinatra/base.rb:566:in `catch'", "/app/.bundle/gems/ruby/1.9.1/ gems/sinatra-1.0/lib/sinatra/base.rb:566:in `invok
e'", "/app/.bundle/gems/ruby/1.9.1/gems/sinatra-1.0/lib/sinatra/base.rb:411:in `call!'", "/app/.bundle/gems /ruby/1.9.1/gems/sinatra-1.0/lib/sinatra/base.rb:399:
in `call'", "/app/.bundle/gems/ruby/1.9.1/gems/sinatra-1.0/lib/sinatra/base.rb:979:in `block in call'", "/app/. bundle/gems/ruby/1.9.1/gems/sinatra-1.0/lib/sinat
ra/base.rb:1005:in `synchronize'", "/app/.bundle/gems/ruby/1.9.1/gems/sinatra-1.0/lib/sinatra/base.rb:979:in `call'" 、「/home/heroku_rack/lib/static_assets.rb:9:
「呼び出し」で"、"/home/heroku_rack/lib/last_access.rb:15:「呼び出し」で"、"/app/.bundle/gems/ruby/1.9.1/gems/rack-1.2.1/lib /rack/urlmap.rb:47:in `block in call'", "/app/
.bundle/gems/ruby/1.9.1/gems/rack-1.2.1/lib/rack/urlmap.rb:41:in `each'", "/app/.bundle/gems/ruby/1.9.1/ gems/rack-1.2.1/lib/rack/urlmap.rb:41:in `call'", "/home
/heroku_rack/lib/date_header.rb:14:in `call'", "/app/.bundle/gems/ruby/1.9.1/gems/rack-1.2.1/lib/rack/builder.rb:77: `call' で", "/app/.bundle/gems/ruby/1.9.1/ge
ms/thin-1.2.7/lib/thin/connection.rb:76:「pre_process 内のブロック」", "/app/.bundle/gems/ruby/1.9.1/gems/thin-1.2.7/lib /thin/connection.rb:74:in `catch'", "/app/.
bundle/gems/ruby/1.9.1/gems/thin-1.2.7/lib/thin/connection.rb:74:in `pre_process'", "/app/.bundle/gems/ruby/1.9.1/gems /thin-1.2.7/lib/thin/connection.rb:57:in `
process'", "/app/.bundle/gems/ruby/1.9.1/gems/thin-1.2.7/lib/thin/connection.rb:42:in `receive_data'", "/app/.bundle/宝石/ルビー/1.9.1/宝石/イベントマシン-0.12.10/l
ib/eventmachine.rb:256:in `run_machine'", "/app/.bundle/gems/ruby/1.9.1/gems/eventmachine-0.12.10/lib/eventmachine.rb:256:in `run'" 、「/app/.bundle/gems/ruby/1.9
.1/gems/thin-1.2.7/lib/thin/backends/base.rb:57:in `start'", "/app/.bundle/gems/ruby/1.9.1/gems/thin-1.2. 7/lib/thin/server.rb:156:`start' で", "/app/.bundle/gem
/app/.bundle/gems/ruby/1.9.1/gems /thin-1.2.7/lib/thin/runner.rb:177:in `run_com
mand'", "/app/.bundle/gems/ruby/1.9.1/gems/thin-1.2.7/lib/thin/runner.rb:143:in `run!'", "/app/.bundle /gems/ruby/1.9.1/gems/thin-1.2.7/bin/thin:6:in `'", "/app/.bundle/gems/ruby/1.9.1/bin/thin:19:in `load'", "/app/.bundle/gems/ruby/1.9.1/bin/thin:19:in `'"]
4

3 に答える 3

7

これは ruby​​ 1.9.3 のエラーです。動作させるには、db:push で 1.9.2 を使用する必要があります。rvm がインストールされている場合は、次の方法で実行できます。

rvm は ruby​​-1.9.2-p318 を使用します
heroku db:プッシュ

適切な 1.9.2 バージョンを使用していることを確認してください。p318 は私の側にインストールされているため、例として挙げています。インストールされている Ruby のバージョンを rvm で確認するには、 を使用しますrvm list。1.9.2 がインストールされていない場合は、rvm install ruby-1.9.2

于 2012-11-12T04:52:23.990 に答える
1

Ruby 1.9.2でgemsetを使用し、タップとsqlite3をインストールすれば問題ありません。

sudo gem install heroku --no-ri --no-rdoc

sudo gem install taps --no-ri --no-rdoc

sudo gem install sqlite3 --no-ri --no-rdoc
于 2012-11-13T20:55:42.523 に答える
0

最後に、ドーシャの回答hereの助けを借りてこれを機能させました。

Ruby のバージョンが Heroku で実行されているバージョンと一致していることを確認してください。これらの移行では、1.9.2 が最も安定したバージョンのようです。

gemfile を次のように変更します (SQLite を使用していると仮定します)。

group :development do
 gem 'taps', :require => false
 gem 'sqlite3'
end

heroku db:pushコマンドが古い、現在非推奨の heroku gem の代わりに Heroku ツールバーを使用しているため、これでも問題が解決しない可能性があります。残念ながら、実際には古い gem が必要ですが、Heroku Toolbar は によって呼び出されていherokuます。これを回避するには、お使いのバージョンの ruby​​ 1.9.2 に heroku gem をインストールし、特定のファイルパスでアクセスする必要があります。

したがって、次の手順は、これを機能させる方法を示しています。

コンソールで次のコマンドを実行します。

rvm install ruby-1.9.2-p320
rvm use ruby-1.9.2-p320
bundle install`
sudo gem install heroku --no-ri --no-rdoc

次に実行します。

rake assets:clean
bundle exec rake assets:precompile

変更を Github にコミットします。

次に、コンソールに次のように入力します。

~/.rvm/gems/ruby-1.9.2-p320/gems/heroku-2.40.0/bin/heroku db:push (これと異なる場合は、独自のファイルパスを使用してください。)

于 2013-08-08T13:56:35.510 に答える