2012年7月31日火曜日

mongoDB(mongoHQ)+herokuでバックアップとインポート

mongoHQのプランアップデートの際にバックアップとインポートを使うことになったので、少しまとめる。

mongodumpとmongorestoreを使ったので表現があれかもしれないですが、初心者のあれでだれかつこんでください。

https://devcenter.heroku.com/articles/mongohq

てかmongoHQのプランアップデートはまってたけど。よく読むと最後に Upgrading your Database ってあるし。。

流れとしては、ここの通り。

$ heroku maintenance:on (off)

やるときは、これでdbに変更がないようにmaintenanceモードにしといたほうがいいねってかいてある。んでまず

$heroku config 
MONGOHQ_URL: mongodb:// <username>:<password>@<host>:<port>/<dbname>

 の部分を確認してmongoHQのdbをdumpする

$ mongodump -h hostname.mongohq.com:port_number -d database_name -u username -p password -o /path/on/my/local/computer

dumpしたあと、プランをremoveからaddしてプランを変更して

$ heroku addons:remove mongohq:free
$ heroku addons:add mongohq:small

変わったMONGOHQ_URLを再び確認をして、mongorestoreをする

$ mongorestore -h hostname.mongohq.com:port_number -d database_name -u username -p password /path/on/my/local/computer

これで、アップグレードはできたことになりましたー!

ちなみに、ローカルにあるdbには 

$ mongorestore -d <dbname> /path/on/my/local/computer

とかで、インストールされるー。<dbname>は config/mongoid.yml内のdevelopment: database: <dbname> のとこ。

 参考

http://jp.docs.mongodb.org/manual/reference/mongodump/

http://jp.docs.mongodb.org/manual/reference/mongorestore/

herokuでのmongoHQのプランアップデートにはまった。

 

heroku,railsでmongoHQのアドオンを使って、アプリを作っていたのだけど、突然dbにデータが入らなくなって、

あれ?!って思って調べたところFreePlanの容量がいっぱいになったっぽい。db削除したら入るようになったし。

そこでここhttps://addons.heroku.com/mongohqから、アップグレードしようとしたところ

You must confirm billing before installing this add-on 

エラーでた。できない。さらに、my acountのBilling Info でsubmit押してもなぜかクレジットが登録されない。

そこで、herokuに問い合わせる。https://help.heroku.com/tickets

Hi,I made a small change on our end that should help here. Can you please try this add-on again?

もう一度、登録してみると登録できた。なんだったんだ。まぁいいいや進んでよかった−と思ったら

Sorry, we do not support plan upgrades at this time. 
For more information please gotohttp://support.mongohq.com/customer/portal/articles/100125

またエラー、しかも指示されたリンクHOMEにリダイレクトされるし。

また問い合わせ。今度はmongoHQに。すると2分後、返信がw

Hello,
That support document should redirect here:http://support.mongohq.com/topics/upgrading-your-mongohq-heroku-addon.html
Please let us know if you need any help upgrading.

って感じで、ちゃんとリンクかえてくれ。またまぁいいやーと思って中見ると、あれ?結局
 
heroku addons:remove mongohq
 
とか使ってんじゃん。再インストール的な感じかってことで、mognodbをバックアップ→インポートの作戦で。
 
というわけで、続きはmongodbでのバックアップとインポートとしてまとめる