2011-03-03 6 views
1

Herokuのシステムを使用してデータベースをプッシュしてプルする方法を学習しようとしていますが、明確な質問があります。Herokuをdbに使用する:新しいデータベースを取得する

私の既存の開発データベースはproject_devと呼ばれていますが、私は新しいデータベースを作成したいと思います。私は、次のコマンドで入力した:

heroku db:pull mysql://root:[email protected]/20110302heroku 

私は私の開発、テスト、および生産DBSを含んdatabase.ymlのファイルを持っている、と私はHerokuのからこの応答を得た:

Auto-detected local database: mysql://root:[email protected]/project_dev?encoding=utf8 

んにこの平均値を私はHerokuから引き出したい場合は手動で新しいデータベースを最初に作成する必要がありますか? dbが私のdatabase.ymlファイルに明示的に定義されていない限り、私はまったく引き出すことができませんか?

すべてのポインタが本当に役に立ちます。私はGoogle、Heroku、そしてSOで見ていたが、私が探していた答えは見つからなかった。ありがとうございました!

答えて

2

はい、新しいローカルデータベースを最初に作成する必要がありますが、database.ymlファイルで宣言する必要はありません。

heroku db:pull mysql://root:[email protected]/newdbを実行すると、正しくnewdbデータベースにインポートされます。なぜあなたのローカルのdevデータベースを自動検出するのか分かりません。あなたは最新のヒロクとタップの宝石を使用していますか?

+0

私はデータベース20110302herokuをまだ作成していません。おそらく、タップは私が指定したデータベースを見つけられないので、database.ymlをバックアップソースと見なします。最初にデータベースを作成し、その問題が解決するかどうかを確認します。 – sscirrus

+0

@sscirrus:タップ0.3.17とheroku 1.18.0を使用して、 "heroku db:pull"を実行すると、最初に "警告:データベースのデータ 'mysql:// root:mydbpassword @ localhost/newdb'が上書きされます回復可能ではない」と語った。確認が求められ、データベースが存在しない場合は中止されます。どのバージョンのタップとヒロクを使用しますか? – Florent2

+0

タップ0.3.17とヒロク1.18.2に更新しました。私は '20110303heroku'という新しいローカルデータベースを作成し、' heroku db:pull mysql:// root:mydbpassword @ localhost/20110303heroku'を試しましたが、それでも私の他のデータベースは 'project_dev'です。私はいつもproject_devに影響を与えたいと仮定して、それを止めるために何をしなければならないのですか? – sscirrus

関連する問題