新しい記事があります。
リンク: herokuにgitでデプロイしてdb:push・・・できませんでした(涙): Non-programmer's Ruby in Pocket.
herokuにgitでデプロイしてdb:pushするはずだったんですが・・・うまくいきませんでした(涙)
追記:herokugardenはデータベースの中身をローカルから更新できません。herokuは可能です(ただしherokuには、WebベースのIDEはありません)。使い込むならherokuの方を使うことをオススメします。
herokugardenにWindowsからGitでデプロイしてみたので、やり方を記録しておきます。流れは以下のような感じです。
まずは自分の鍵を作ります。
herokugarden を入手
ローカルレポジトリを作成
リモートレポジトリを作成
pushコマンドでローカルリポジトリのデータをリモートレポジトリに移す
以下、詳細です。
1)まずWindows用のGitをインストールします。
リンク: msysgit - Google Code.
Git on Windows
1-1)まずは自分の鍵を作ります。
これは暗号化のために必要です。先ほどインストールしたGitのGUI版で簡単に作ることができます。場所は以下のとおりです。
2)herokugardenにはGitの使い方の説明がないので、herokuの説明を読みながら作業します。なので、この記事は「heroku」を「herokugarden」と読みかえてあげる必要があります。
リンク: Heroku | Heroku Quickstart Guide.
If you aren’t already using Git to track the app’s revisions, run these commands:
具体的には以下のことをやります:
2-1)Ruby Gems で herokugarden を入手
$ sudo gem install herokugarden
Successfully installed heroku-0.6
1 gem installed
NetbeansならGUIでインストールできます。場所は以下のとおりです。
2-2)Gitでローカルレポジトリ※を作成
$ git init
Initialized empty Git repository in .git/
$ git add .
$ git commit -m "new app"
Created initial commit 5df2d09: new app
44 files changed, 8393 insertions(+), 0 deletions(-)
2-3)入手したherokugardenコマンドでリモートレポジトリ※を作成
$ herokugarden create
Enter your HerokuGarden credentials.
Email: joe@example.com
Password:
Uploading ssh public key /Users/joe/.ssh/id_rsa.pub
これでうまくいっているはずなのですが、私はうまくいかなかったので、以下のようにしてherokugardenを作り直しました。
$ git remote rm herokugarden
$ git remote add herokugarden git@herokugarden.com:untitled-11d6c4c.git
2-4)herokugarden pushコマンドでローカルリポジトリのデータをリモートレポジトリに移す
$ git push herokugarden
Enter passphrase for key :
To git@herokugarden.com:untitled-xxxxxxx.git
! [rejected] master -> master (non-fast forward)
error: failed to push some refs to 'git@herokugarden.com:untitled-xxxxxxx.git'
あれれ、うまくいきません。どうもherokugardenが勝手に生成したコードと競合を起こしてしまっているようです。
そこで、pushに「強制」オプション( -f )を付けます。
$ git push herokugarden -f
Enter passphrase for key :
Counting objects: 141, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (134/134), done.
Writing objects: 100% (141/141), 234.55 KiB | 242 KiB/s, done.
Total 141 (delta 32), reused 0 (delta 0)
refs/heads/master: 61c8afc325a8de2f76124674a9843cde09b21baf -> eb66762f0e437409
c0f2229dbd6138dca242d62
HEAD is now at eb66762... hp usecase sim
Running migrations...
(in /mnt/home/userapps/73354)
== 20090517153552 CreateChoices: migrating ====================================
-- create_table(:choices)
-> 0.0607s
== 20090517153552 CreateChoices: migrated (0.0609s) ===========================
== 20090518044040 CreateParagraphComments: migrating ==========================
-- create_table(:paragraph_comments)
-> 0.0214s
== 20090518044040 CreateParagraphComments: migrated (0.0215s) =================
== 20090518054531 CreateParagraphs: migrating =================================
-- create_table(:paragraphs)
-> 2.6348s
== 20090518054531 CreateParagraphs: migrated (2.6349s) ========================
App restarting...
######################################################################## 100.0%
Deployed to http://untitled-xxxxxxx.herokugarden.com
To git@herokugarden.com:untitled-xxxxxxx.git
+ 61c8afc...eb66762 master -> master (forced update)
なんとかうまくいきました。ほっとしますね。
※
これについては、以下の記事がとてもわかりやすいイメージを載せてくれています。
リンク: せっかちな人のための git 入門 - git をインストールし、共同で開発できる環境を整えるまで : 僕は発展途上技術者.
mac% git push origin master (master を origin にプッシュするという意味)