heroku에서 db를 다운로드하려면 어떻게 해야 합니까?
heroku를 사용하고 있는데 앱(heroku)에서 데이터베이스를 다운로드하여 변경할 수 있도록 하고 싶습니다. pg백업을 설치했지만 사용하고 있습니다.heroku pgbackups:url
.downloads 파일
postgresql 파일을 다운로드하거나 .dump를 postgresql 파일로 변환하려면 어떻게 해야 합니까?
Heroku의 pg백업을 사용하는 경우(사용해야 할 경우):
$ heroku pg:backups capture
$ curl -o latest.dump `heroku pg:backups public-url`
다음과 같이 포스트그레스 DB로 번역합니다.
$ pg_restore --verbose --clean --no-acl --no-owner -h localhost -U myuser -d mydb latest.dump
https://devcenter.heroku.com/articles/heroku-postgres-import-export 참조
CLI에 이런 명령이 있습니다.heroku db:pull
당신을 위해 이렇게 해 줄 겁니다.db:pull
당신은 좀 천천히 생각할 수 있으므로 다음 옵션을 사용하는 것이 더 나을 수 있습니다.
복잡한 후처리 데이터 유형(hstore, array 등)을 사용하는 경우 기본적으로 Heroku에 대한 백업을 수행하고 로컬로 복원하는 pgtransfer 플러그인 https://github.com/ddollar/heroku-pg-transfer 을 사용해야 합니다.
업데이트:db:pull
그리고.db:push
감가 상각되었으므로 로 교체해야 합니다.pg:pull
그리고.pg:push
- 자세한 내용은 https://devcenter.heroku.com/articles/heroku-postgresql#pg-push-and-pg-pull 에서 확인할 수 있습니다.
설명서에서 제안한 첫 번째 방법은 훨씬 더 쉽게 풀/푸쉬할 수 있다는 것을 발견했습니다.암호나 사용자 이름이 필요 없습니다.
pg: 삭제
pg:pull을 사용하여 Heroku Postgres 데이터베이스에서 로컬 컴퓨터의 데이터베이스로 원격 데이터를 끌어 올 수 있습니다.명령어는 다음과 같습니다.
$ heroku pg:pull HEROKU_POSTGRESQL_MAGENTA mylocaldb --app sushi
이 명령은 "mylocaldb"라는 이름의 새 로컬 데이터베이스를 만든 다음 데이터베이스에서 데이터를 꺼냅니다.
DATABASE_URL
앱 "http://http://http:실수로 인한 데이터 덮어쓰기 및 손실을 방지하려면 로컬 데이터베이스가 존재하지 않아야 합니다.계속하기 전에 이미 존재하는 로컬 데이터베이스를 삭제하라는 메시지가 나타납니다.
처음에는 오류가 있었습니다./bin/sh: createdb: command not found
; 이 SO 게시물을 보고 풀었습니다.
문서에도 설명되어 있는 대안은 다음과 같습니다(아직 시도해 보지 않았습니다).
Heroku Postgres 데이터베이스에서 데이터를 내보내려면 새 백업을 만들고 다운로드합니다.
$ heroku pg:backups:capture $ heroku pg:backups:download
출처: PG 백업을 사용하여 Heroku Postgres 데이터베이스 가져오기 및 내보내기
Heroku Postgres 데이터베이스에서 데이터를 내보내려면 아래 단계를 따릅니다.
- heroku 로그인
- APP-> settings-> reveal config 변수로 이동
- DATABASE_URL 복사
- 달려.
pg_dump --DATABASE_URL_COPIED_IN_STEP_3 > database_dump_file
postgresql 파일 또는 덤프 파일의 경우 postgres addon 인터페이스에서 직접 다운로드할 수 있습니다.
로컬 서버에서 데이터베이스를 다운로드하고 복제하는 가장 쉬운 방법은 다음과 같습니다.
**PGUSER**=LOCAL_USER_NAME PGPASSWORD=LOCAL_PASSWORD heroku pg:pull --app APP_NAME HEROKU_POSTGRESQL_DB_NAME LOCAL_DB_NAME
자세한 정보를 보려면 이 문서를 살펴보십시오: https://devcenter.heroku.com/articles/heroku-postgresql#pg-push-and-pg-pull
이것이 제가 즐겨 쓰는 대본입니다.
namespace :heroku do
desc "Import most recent database dump"
task :import_from_prod => :environment do
puts 'heroku run pg:backups capture --app APPNAME'
restore_backup 'APPNAME'
end
def path_to_heroku
['/usr/local/heroku/bin/heroku', '/usr/local/bin/heroku'].detect {|path| File.exists?(path)}
end
def heroku(command, site)
`GEM_HOME='' BUNDLE_GEMFILE='' GEM_PATH='' RUBYOPT='' #{path_to_heroku} #{command} -a #{site}`
end
def restore_backup(site = 'APPNAME')
dump_file = "#{Rails.root}/tmp/postgres.dump"
unless File.exists?(dump_file)
pgbackups_url = heroku('pg:backups public-url -q', site).chomp
puts "curl -o #{dump_file} #{pgbackups_url}"
system "curl -o #{dump_file} '#{pgbackups_url}'"
end
database_config = YAML.load(File.open("#{Rails.root}/config/database.yml")).with_indifferent_access
dev_db = database_config[Rails.env]
system "pg_restore -d #{dev_db[:database]} -c #{dump_file}".gsub(/\s+/,' ')
puts
puts "'rm #{dump_file}' to redownload postgres dump."
puts "Done!"
end
end
나에겐 간단한 것.heroku pg:pull DATABASE local-db-name -a app-name
일했다.
◦: 것이 아니라 "라는합니다.데이터베이스의 이름이나 화려한 것이 아니라 단지 "DATABASE"라는 단어를 의미합니다.rake db:drop
바로 전에, 그것은 당신의 로컬 데이터베이스 이름을 보여줄 것이고, 그것은ABC_development
.
언급URL : https://stackoverflow.com/questions/17022571/how-can-i-download-db-from-heroku
'programing' 카테고리의 다른 글
realoc() 전에 malloc()이 필요합니까? (0) | 2023.09.11 |
---|---|
C/C++ stdlib 명명 규칙의 이름은? (0) | 2023.09.11 |
폼 제어를 비활성화하되 값은 유지하는 방법 (0) | 2023.09.11 |
원시 소켓을 특정 인터페이스에 바인딩하는 방법 (0) | 2023.09.11 |
키 스트로크로 잠시 루프를 죽이는 방법? (0) | 2023.09.11 |