2011-03-03 2 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의 탭과 heroku 1.18.2로 업데이트되었습니다. 나는 또한'20110303heroku'라는 새로운 로컬 데이터베이스를 만들었고'heroku db : pull mysql : // root : mydbpassword @ localhost/20110303heroku'를 시도했지만 여전히 다른 데이터베이스 인'project_dev'를 기본값으로 사용하고 있습니다. 항상 project_dev에 영향을 미치고 싶다고 가정 할 때해야 할 일은 무엇입니까? – sscirrus

관련 문제