Heroku 프로덕션 데이터베이스를 개발 환경에 복사하는 방법은 무엇입니까?

개발 중인 프로덕션 데이터베이스의 복사본을 실행하려는 경우가 있습니다.

디버깅이나 잠재적으로 위험한 작업을 실험하는 데 정말 유용할 수 있습니다.

개발 중인 Heroku Postgresql 데이터베이스를 실행하는 방법은 다음과 같습니다.
  • 1 Heroku 백업 생성

  • heroku pg:backups:capture --app myappname
    


  • 2 Heroku 백업 다운로드(source)

  • heroku pg:backups:download --app myappname
    


  • 3 로컬 데이터베이스 재설정

  • rails db:drop
    rails db:drop DISABLE_DATABASE_ENVIRONMENT_CHECK=1
    rails db:create
    


  • 4 heroku 다운로드에서 로컬 데이터베이스 채우기

  • (database.yml에서 개발 데이터베이스 이름 배치)

    pg_restore -h localhost -d myappname_development latest.dump
    


  • 마이그레이션 실행 5회

  • rails db:migrate
    


  • 6 앱 리포지토리에서 다운로드한 데이터베이스를 제거합니다.

  • rm latest.dump 
    


    그게 다야! 이제 개발 중인 프로덕션 데이터베이스의 복사본이 생겼습니다🥳!


    문제 해결


  • Update postgresql
  • 새 postgresql 사용자 및 비밀번호 생성(source)

  • createuser --interactive --pwprompt
    yaro
    pass
    


  • 데이터베이스 복원을 위해 새로 생성된 postgresql 사용자를 지정하고 복원

  • pg_restore -h localhost -U yaro -d myappname_development latest.dump
    pass
    


    또는

    PGPASSWORD=pass pg_restore -h localhost -U yaro -d myappname_development latest.dump
    


    또는

    set "PGPASSWORD=pass"
    pg_restore --verbose --clean --no-acl --no-owner -h localhost -U yaro -d myappname_development latest.dump
    



    gitignore에 latest.dump 추가:

    echo 'latest.dump*' >> .gitignore
    

    좋은 웹페이지 즐겨찾기