8

PostGIS 拡張機能を PostgreSQL に多用するアプリケーションを作成中です。私はこれを見つけました:

https://devcenter.heroku.com/articles/is-postgis-available

これは、Ronin以降のDBでのみPostGISを取得できることを示唆しています。これは本番用にはまったく問題ありませんが、私の計画では、本番システムにそのレベルの DB を使用することでした。

ただし、Heroku にはステージングおよび開発環境もあります。つまり、本番 DB からテストを実行できないため、これらの環境にも PostGIS 対応データベースが必要です。これらの環境をサポートするオプションが必要なため、次のことを考えています。

アドオン プロセス以外で Heroku 上の DB に接続できますか?

テスト DB の構成変数を手動で追加しようとしましたが、pg:promote を介して魔法のように機能するだけではありません。Heroku が有効なデータベースと見なす方法を制御するものは他にもあります。

人々が考えることができる他のオプションをいただければ幸いです。動作する可能性のある SpacialDB のクローズド ベータ版があることは知っていますが (既に調べています)、他に考えられることはありますか? テスト/ステージ用の専用 DB に月額 400 ドル余分に支払うつもりはありません。

4

3 に答える 3

3

必要に応じて、本番層データベースを作成 (プロビジョニング) および削除できます。エントリ レベルの実稼働層データベースの料金は、1 時間あたり 0.07 USD (または 1 日あたり 1.67 USD) です。データベースをフルタイムでプロビジョニングし続けると、月額 50 ドルかかります。Heroku Postgres Production Tier Technical Characterizationを参照してください。

データベースをプロビジョニングする

1.これは 1 行または 2 行で実行できます。

-bash> heroku addons:add heroku-postgresql:crane --remote staging
Adding heroku-postgresql:crane on cool-app-0007... done, v36 ($50/mo)
Attached as HEROKU_POSTGRESQL_GOLD_URL
The database should be available in 3-5 minutes.
 ! The database will be empty. If upgrading, you can transfer
 ! data from another database with pgbackups:restore.
Use `heroku pg:wait` to track status..
Use `heroku addons:docs heroku-postgresql` to view documentation.

プロビジョニング プロセスには 3 ~ 5 分かかりますが、コマンド プロンプトはすぐに戻ります。メッセージに従って、プロビジョニングのステータスを追跡できます。

-bash> heroku pg:wait --remote staging
Waiting for database HEROKU_POSTGRESQL_GOLD_URL... available

上記の 2 つのコマンドを 1 回で実行できることに注意してください ( &&2 番目のコマンドは、最初のコマンドが正常に返された後にのみ実行されます)。

-bash> heroku addons:add heroku-postgresql:crane --remote staging && heroku pg:wait --remote staging

2.完了したら (「使用可能」)、DATABASE_URL上記の名前 (つまりHEROKU_POSTGRESQL_GOLD_URL) を使用して設定します。コピー/貼り付けを避けるために、一発で行います。

-bash> heroku config:set DATABASE_URL=`heroku config:get HEROKU_POSTGRESQL_GOLD_URL --remote staging` --remote staging
Setting config vars and restarting cool-app-0007... done, v37 
DATABASE_URL: postgres://i28asd172a3k2:bd3k2s05sls1a03b8c4efi0b33a@ec2-12-345-678-90.compute-1.amazonaws.com:5562/eexf3mwha92jk6

3.移行または復元。

上記を初めて実行するときは、データベースをセットアップする必要があります (たとえば、 migrations:heroku run rake db:migrate --remote stagingを実行し、場合によっては を実行しますheroku restart --remote staging)。

その後、バックアップから復元するため、中断したところから続行できます。

-bash> heroku pgbackups:restore HEROKU_POSTGRESQL_GOLD_URL b001 --confirm cool-app-0007

HEROKU_POSTGRESQL_GOLD_URL (DATABASE_URL)  <---restore---  b001
                                                             HEROKU_POSTGRESQL_ROSE_URL (DATABASE_URL)
                                                             2014/01/12 03:19.29
                                                             16.3KB

Retrieving... done
Restoring... done

バックアップを作成する

-bash> heroku pgbackups:capture HEROKU_POSTGRESQL_ROSE_URL

HEROKU_POSTGRESQL_ROSE_URL (DATABASE_URL)  ----backup--->  b001

Capturing... done
Storing... done

データベースを削除します

-bash> heroku addons:remove HEROKU_POSTGRESQL_ROSE_URL
Removing HEROKU_POSTGRESQL_ROSE_URL on cool-app-0007... done, v35 ($50/mo)

詳細については、を参照してください。

于 2014-01-13T01:20:32.677 に答える
-1

おそらく、Herokuで制限されたpg 9.1開発データベースの最近の発表を見逃しましたか?

https://postgres.heroku.com/blog/past/2012/4/26/heroku_postgres_development_plan/

また、新しいCraneプラン、http://blog.heroku.com/archives/2012/5/8/crane-production-database-plan-launched/も機能する可能性があります。

于 2012-05-30T22:02:31.953 に答える