3

でherokuデータベースをダンプできます$ heroku pgbackups:capture。また、この SO 投稿は、開発データベースを取得してそれをシード.rb にダンプするためのツールがあることを示しています。

より現実的な開発テストのために、Heroku の実稼働データベースからローカルの seed.rb にデータを効果的にダンプして、2 つのプロセスを組み合わせる簡単な方法があるかどうか疑問に思っています。

これが可能な場合、これを行う最もクリーンな方法は何ですか?

アップデート:

dB' からの洞察に満ちた回答に基づいて、PGSQL をローカルで使用することを検討できます。ただし、それを簡単に行う方法があれば、質問のseed.rbの側面にまだ興味があります。

4

2 に答える 2

5

そのようなことを達成するには、いくつかの方法があります。@dB' はそれらの 1 つを概説しました - PG Backups アドオンを使用してデータベースをエクスポートします。これは素晴らしいオプションですが、いくつかの (些細な) 手動コマンドが必要です。

pg:transfer Heroku CLI プラグインを使用して、データを 1 ステップで転送することをお勧めします。内部的には、PG バックアップを使用した場合とほとんど同じことが起こっていますが、パッケージ化されており、便利なデフォルトがいくつかあります。

pg:transferアプリのディレクトリから、プラグインをインストールしてコマンドを実行することにより、実稼働データベースをローカルにコピーします (ローカル PG データベースを想定) 。

$ heroku plugins:install https://github.com/ddollar/heroku-pg-transfer
$ heroku pg:transfer

設定できるオプションもいくつかあります。詳細については、私の記事を参照してください。

それが役立つことを願っています! はい、開発中は本番環境と同じデータベースを使用してください。

于 2013-02-15T19:38:09.553 に答える
2

探しているものかどうかわかりませんが、pgbackups:capture と pg_restore を使用してデータベースをローカル マシンにコピーしてみましたか? このアプローチでは、seeds.rb を使用しませんが、ローカル マシン上に本番データベースを再作成します。こんな感じです。

$ heroku pgbackups:capture
$ curl -o latest.dump `heroku pgbackups:url`
$ pg_restore --verbose --clean --no-acl --no-owner -h localhost -U myuser -d mydb latest.dump

(このコードは、Heroku dev center の説明から自由にコピーされます。)

于 2013-02-08T23:15:15.407 に答える