2017-11-11 18 views
0

컨텍스트 : 프로덕션 환경에 레일 앱을 내장했습니다. 원래 프로젝트의 범위는 작았 기 때문에 테스트를 작성할 필요가 없었습니다. 그러나 그것이 커짐에 따라 필자는 테스트를 작성해야했습니다.실수로 프로덕션 데이터베이스를 만들었습니다. 이것이 이미 존재하는 생산 데이터를 파괴 할 것인가?

`rake db:create:all` 

나는 다음과 같은 응답을 받았습니다 : 나는 테스트 데이터베이스와 함께 RSpec에 설정으로

, 나는 다음과 같은 명령을 실행

Database 'db/development.sqlite3' already exists 
Database 'db/test.sqlite3' already exists 
Created database 'db/production.sqlite3'` 

질문 : 내가 가지고 있다는 사실을 감안할 때 이미 실행중인 프로덕션 데이터베이스가있는 배포 된 응용 프로그램 (Heroku에서)은 변경 사항을 병합하고 내 코드를 프로덕션 환경으로 푸시 한 후 모든 데이터를 파괴하는 최종 행 ( Created database 'db/production.sqlite3)입니다. ?

나는 프로덕션 환경에서 이미 다른 데이터베이스를 사용하고 있으므로 삭제해야합니까? 그렇다면 어떻게?

도움이되는 답변을 제공하기 위해 누군가가 필요로하는 세부 정보를 추가하게되어 기쁩니다. 미리 감사드립니다.

+0

해당 명령을 로컬로 실행 했습니까? 권리? 먼저, 모든 db 파일은 수동으로 제거하지 않는 한 .gitignore 파일에 추가됩니다. 따라서 변경 사항을 병합하고 푸시하면 git에서 무시되므로 .sqlite3 파일에는 영향을 미치지 않습니다. –

답변

0

Heroku는 지난 번 확인한 sqlite가 아닌 Postgres를 사용합니다. 당신의 gemfile의 production 부분에있어 그것은 포스트 그레스해야 무슨

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

봐. 테스트/개발에서는 sqlite를 사용할 수 있습니다.

rake db:create으로 컴퓨터에서 변경 한 사항은 로컬이어야합니다. 위의 링크에서 database.yml을 올바르게 구성하면 heroku에서 데이터베이스가 엉망이 될 염려는 없습니다.

가능하다면 프로덕션 데이터의 백업을 생성하지 않아도됩니다.