ブログトップ 記事一覧 ログイン 無料ブログ開設

アインシュタインの電話番号☎

2011-02-22

HerokuでDBのデータをダウンロードしたりアップロードしたり

Heroku

Herokuでデータベース上のデータを、主にSQLite3を使用してダウンロードしたりアップロードする手順のメモ。


インストール

まずHerokuにデータベースファイルをアップロードしたり、Herokuからダウンロードしたりするには「taps」というgemが必要になるのでインストールする。

これをインストールすると、rack、sequel、sinatra、sqlite3、sqlite3-rubyなどが一緒にインストールされるので、gemの管理に気を使っている場合は注意が必要。

$ gem install taps

ちなみに、こういう依存関係のgemを対象gemのインストール前に知る方法ってあるのかな?

gem dependency コマンドはインストール後のgemの依存関係を表示してくれるけど、インストール前に何が一緒にインストールされるのかはわからない。

とググってたら、いちおうRubyGemsのサイトに行けば調べられるみたい。

これを見ると、tapsをインストールすると、上記の他にrest-clientjsonも一緒にインストールされるっぽい。たしかにgem listしてみたら入ってた。毎回こうやってRubyGemsのサイトを探して見るしかないのかな? gemコマンドから調べられると嬉しいんだけど…

とりあえず、tapsをインストールできたら準備完了。


ダウンロード

Heroku上のDBファイルを、ローカルにダウンロードするには以下のように heroku db:pull コマンドを実行する。

$ heroku db:pull sqlite://保存したいファイル名 --app Herokuアプリ名
$ heroku db:pull sqlite://dump.sqlite3 --app heroku-hello-world

すると、Herokuさんが「マジで実行するならアプリ名もっかい入力して?」と聞いてくるので、もう一度Herokuアプリ名をタイプしてエンターを押すと、ダウンロードが開始される。で、ローカルのカレントディレクトリに「dump.sqlite3」が生成される。


アップロード

ローカルのDBファイル(.sqlite3ファイル)を、Heroku上にアップロードするには以下のように heroku db:push コマンドを実行する。

$ heroku db:push sqlite://現在のディレクトリからのDBファイルへの相対パス --app Herokuアプリ名
$ heroku db:push sqlite://db/development.sqlite3 --app heroku-hello-world

すると、Herokuさんが「マジで実行するならアプリ名もっかい入力して?」と聞いてくるので、もう一度Herokuアプリ名をタイプしてエンターを押すと、アップロードが開始される。アップロードされたDBファイルの確認方法は・・・どうすんだろうw Herokuアプリを実行してみる以外に確認する方法あるのかな。heroku consoleとか?

とまぁこんな感じで簡単にDBファイルのアップロードやダウンロードが出来る便利なヘロクさんステキ。



Windowsの場合

Windowsの場合は、上記の各コマンドを実行すると、エラーが出る場合がある。そのエラーが以下のどちらかの場合は回避できる。

sqlite3.dllが見つからない

ruby.exe - エントリ ポイントが見つかりません

プロシージャ エントリ ポイント sqlite3_column_database_name がダイナミック リンク ライブラリ sqlite3.dll から見つかりませんでした。

f:id:ruedap:20110222212824p:image

このエラーの場合は「sqlite3.dll」をダンロードしてきてインストールすればおk

SQLite公式サイトのダウンロードページから「Precompiled Binaries For Windows」の中の「sqlite-dll-win32-x86-3070500.zip」をダウンロードする。

ファイルを解凍した中から「sqlite3.dll」をパスの通った場所にコピーする。(例:C:\Ruby187\bin)

これでおk

msvcrt-ruby191.dllが見つからない

ruby.exe - システム エラー

コンピューターに msvcrt-ruby191.dll がないため、プログラムを開始できません。この問題を解決するには、プログラムを再インストールしてみてください。

f:id:ruedap:20110222212839p:image

このエラーの場合は、以下の条件の場合に起こる模様。この記事がとても参考になった。感謝。

  • Ruby 1.8を使用していて、インストールされている「json gem」のバージョンが1.5系の場合

で、回避方法はjson gemのバージョンを1.4.6に下げる。ただし、ほかのgemとの依存関係で1.5系を要求されていると、そのgemが使えなくなる恐れがあるので、バージョンダウンする場合はそこらへん注意。

$ gem list json
$ gem uninstall json
$ gem install json --version 1.4.6

これでエラーが出ずに使えるようになるはず。


(via) Heroku | Dev Center | Importing and Exporting Your Data

(via) Heroku | Push and Pull Databases To and From Heroku

(via) Ruby 1.8.7とjson1.5.1 x86-mswin32で、「msvcrt-ruby191.dllが見つからない」エラー - モンテカットの開発日記

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証