6

Herokuのタップでruby1.9.2-p320を使用すると、次のようなエラーが発生します。次のような「db」コマンドを使用します。

heroku db:pull --app my-app

次のようなエラーが発生します。

Taps Load Error: no such file to load -- sqlite3

-また-

Taps Load Error: no such file to load -- pg

(はい、ところで、私はすべての正しいgemを持っています。これには、postgres(ローカルで正常に実行されている)とsqlite3の両方が含まれ、タップとheroku gemがアンインストール、再インストール、更新され、それらが含まれているだけでなく、含まれていません。それらをGemfileに含めます。Rails3.2.6を実行しています)

「タイムゾーンの置き換え」エラーが発生する既知のバグがあります。herokudb:pushが機能せず、タップgemを使用していますが、この問題に直接対処するSOの投稿はありません。

4

4 に答える 4

15

Tapsは、postgresインスタンス間でデータを移行するときに使用することをお勧めするツールではなくなりました。代わりに、 heroku-pg-transferを試してください。

これは、本番データベースの1つ、新しいHeroku postgres dev、または基本プランを使用している場合にのみ機能します。古い共有データベースプランをまだ使用している場合は、新しい開発プランに切り替えることをお勧めします。

まず、HerokuでデータベースへのURLを見つけます。

$ heroku config:get DATABASE_URL
postgres://yada:yada@ec2-107-21-122-141.compute-1.amazonaws.com:5432/123

次に、herokudbからローカルdbに転送します。

$ heroku plugins:install https://github.com/ddollar/heroku-pg-transfer
$ heroku pg:transfer -t postgres://localhost/dbname -f postgres://yada:yada@ec2.../123

heroku-pg-transferツールはpostgresのネイティブpg_dump機能を利用しているため、はるかに予測可能で復元力のあるツールです。

これについて詳しくは、heroku pg:transferを使用してPostresデータベースを移行します。

于 2012-06-21T19:16:40.973 に答える
2

https://github.com/ricardochimal/taps/issues/92からのヒントを使用して私が見つけた解決策の詳細は、https://github.com/ricardochimal/taps/issues/92#issuecomment-6486535です。

要するに、私が知る限り、ruby1.9.2-p320が問題だったようです。ruby 1.9.2-p290にダウングレードすると、修正されました。これは、上記のリンクで話されているルビー1.9.3の問題に関連している可能性があります。

まだTapsを使用している場合は、GHでこのコメントを参照してください。ポスターのdosheaは、私やjfeustよりも徹底的に調査したようです。

また、ここで繰り返しますが、 Tapsが必要ない場合は、heroku-pgtransferが友だちです。ここでの私の質問に対するライアンの回答と、新しいツールの使用に関する彼の優れたブログ投稿を参照してください。

于 2012-06-21T17:31:14.213 に答える
2

私の解決策は、tapsgemとsqlite3gem(アプリのどこにもsqliteを使用していなくても)をgemfile(開発中)に追加することでした。

于 2012-07-18T18:48:53.383 に答える
1

@liketheskyに従って、ダウングレードできます。または、

~/.rvm/bin/ruby-1.9.2-p320 /usr/bin/heroku db:push

もちろん、それには、tapとsqllite3gemもインストールされたp320がインストールされている必要があります。設置するのに十分簡単です。

于 2012-12-13T05:16:08.853 に答える