2011-03-03 18 views
1

我想學習如何推拉數據庫使用Heroku的系統,我只是有一個澄清的問題。使用Heroku來分貝:拉一個新的數據庫

我現有的開發數據庫被稱爲project_dev但我想創建一個新的數據庫。我在下面輸入的命令:

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

我有一個database.yml文件,其中包括我的開發,測試和生產的DBS,和我從Heroku的這種反應:

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

這是否意味着如果我想從Heroku中拉出,我必須先手動創建一個新的數據庫?這是否意味着我不能拉,除非數據庫在我的database.yml文件中明確定義?

任何指針都會非常有幫助。我瀏覽了谷歌,Heroku和SO,但我沒有找到我正在尋找的答案。謝謝!

回答

2

是的,你必須先創建新的本地數據庫,但是你不必在你的database.yml文件中聲明它。

當我運行heroku db:pull mysql://root:[email protected]/newdb它正確地輸入到newdb數據庫。我不確定它爲什麼會自動檢測您的本地開發數據庫。你使用最新的heroku和水龍頭寶石?

+0

我還沒有創建數據庫20110302heroku。也許點擊沒有找到我指定的數據庫,所以它看起來database.yml作爲備份源?我會先嚐試創建數據庫,看看是否能解決問題。 – sscirrus 2011-03-03 03:41:52

+0

@sscirrus:用水龍頭0.3.17和heroku 1.18.0,當我運行「heroku db:pull」時,它首先顯示「Warning:數據庫中的數據'mysql:// root:mydbpassword @ localhost/newdb'將被覆蓋並且不會被收回。「然後要求確認,然後在數據庫不存在時中止。您使用哪些版本的水龍頭和heroku? – Florent2 2011-03-03 15:19:31

+0

我剛更新爲0.3.17和heroku 1.18.2。我還創建了一個名爲'20110303heroku'的新本地數據庫,並且我嘗試了'heroku db:pull mysql:// root:mydbpassword @ localhost/20110303heroku',但它仍然默認爲我的其他數據庫:'project_dev'。假設我總是想影響project_dev,我該怎麼做才能停止它? – sscirrus 2011-03-03 21:44:48

相關問題