質問

私はテストのためdev.myapp.comし、その後、本番環境での使用のためにwww.myapp.comするコードをプッシュできるようにしたいと思います。これはHerokuのでは可能ですか?

役に立ちましたか?

解決

Herokuのにあなたのインターフェースは、基本的にGitのブランチです。 Herokuの宝石は、そのAPIを介していくつかの作業を行いますが、あなたのGitリポジトリ内では、それだけで新しいリモートブランチです。

heroku create yourapp # production
git br -D heroku # delete the default branch

heroku create staging-yourapp # staging
git br -D heroku # delete the default branch

あなたはHerokuの上で複数のアプリケーションを設定したら、あなたはこのようなあなたのGitのリポジトリを設定することができる必要があります:

git remote add staging git@heroku.com:staging-yourapp.git
git push origin staging

git remote add production git@heroku.com:yourapp.git
git push origin production

私は通常、「作業」ブランチで作業し、私の主人のためのGithubを使用します。

それはあなたのためのケースだと仮定すると、あなたのデプロイのワークフローは、おそらくのようになります:

git co -b working
# do some work

# push to github:
git co master
git merge working
git push

# push to staging:
git co staging
git merge master
git push origin staging

# push to production
git co production
git merge master
git push origin production

他のヒント

元の質問の重要な部分は、メインアプリ(www.myapp.com)のサブドメイン(dev.myapp.com)にステージングアプリをアップリンクについてです。これは、答えのいずれかで対処されていません。

ステップ1:ルークベイズによって解答に示されるように、両方の生産(「myappに」)とステージング(「ステージング-myappに」)のアプリのバージョンを設定します。

ステップ2:ドメイン管理システムにおいて(例えばGoDaddyの)

Create a CNAME record:  dev.myapp.com 
that points to:   proxy.heroku.com

ステップ3:ステージング-のMyAppにルーティングdev.myapp.comにHerokuのを設定します。

heroku domains:add dev.myapp.com --app staging-myapp
CNAMEレコードが伝播する時間を過ごした後、あなたがdev.myapp.comであなたのステージングアプリケーションを実行することができるようになります。

あなたは heroku_sanする

これは、Herokuの上の環境でかなり良い仕事ジャグリングを行います。

物事は今簡単です。ここではあなたがそれを行う方法です...

各環境のためのアプリケーションを作成します。

$ heroku create myapp --remote production
$ heroku create myapp-staging --remote staging

これは、あなたが.git/configで見ることができ、それぞれのアプリのためのリモートリポジトリの名前が作成されます。

: - アプリまたは - 特定のアプリをターゲットにするリモートのスイッチを

あなたは今ののいずれかを使用することができます

$ heroku info --app myapp-staging
$ heroku info --remote staging

設定Railsの環境

"生産" 環境のにRailsのアプリケーション、Herokuのはデフォルトの場合。あなたのステージングアプリはステージング環境で実行したい場合は、プロジェクトで環境を作成し、セット対応の RAILS_ENV RAKE_ENV のアプリ上の環境変数ます:

$ heroku config:set RACK_ENV=staging RAILS_ENV=staging --remote staging

環境

を設定します あなたが他の設定変数をお持ちの場合は、同様に各環境のためにそれらを渡す必要があります。

$ heroku config:set AWS_KEY=abc --remote staging
$ heroku config:set AWD_SECRET=123 --remote staging
...etc

私はちょうど snappconfig のの宝石を使用して実行してもそれは巨大な痛みですP>

$ rake heroku:config:load[myapp-staging]

Herokuのに私のプロジェクトのYAML設定ファイルをロードします。

展開

今、あなたはちょうどこのようにHerokuのにプッシュ

$ git push staging master
$ git push production master

と、次のように移行します:

$ heroku run rake db:migrate --remote staging
$ heroku run rake db:migrate --remote production
<時間>

はAppの複数環境の管理を参照してください|。詳細情報およびショートカットのHerokuのデベロッパーセンター

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top