2013-04-03 12 views

Odpowiedz

55

Można zrzucić pojedynczą tabelę danych tak:

$ pg_dump --no-acl --no-owner -h [host ip].compute-1.amazonaws.com -U [user name] -t [table name] --data-only [database name] > table.dump 

można uzyskać wszystkie wartości potrzebne z tego:

$ heroku pg:credentials:url [DATABASE] -a [app_name] 
Connection info string: 
    "dbname=[database name] host=[host ip].compute-1.amazonaws.com port=5432 user=[user name] password=[password] sslmode=require" 
Connection URL: 
    postgres://[username]:[password]@[host ip].compute-1.amazonaws.com:5432/[database name] 

ten poprosi o podanie hasła. Wpisz go, a następnie przejdź do pliku table.dump na dysku lokalnym.

Prawdopodobnie chcą obciąć tabelę na inscenizacji:

$ echo "truncate [table];" | heroku pg:psql [DATABASE] -a staging_app 

Z tego pliku można użyć psql z wyjściem Connection URL: z nowe połączenie do pg:credentials dla aplikacji pomostowym i przywrócić tylko, że stół .

$ psql "[pasted postgres:// from pg:credentials:url of staging app]" < table.dump 
SET 
SET 
... 
... 
... 
... 
$ 
+0

Dziękuję bardzo za pomoc! – dennismonsewicz

+7

Jeśli potrzebujesz wielu tabel, dodaj przełącznik -t dla każdej tabeli. Tak więc, 'pg_dump --no-acl --no-owner -h [host ip] .compute-1.amazonaws.com -U [nazwa użytkownika] -t [nazwa tabeli 1] -t [nazwa tabeli 2] -t [nazwa tabeli 3] - tylko dane [nazwa bazy danych]> table.dump' – vansan

+2

To działało świetnie, dzięki. Dla innych, którzy to robią: Po wykonaniu powyższych kroków nie zapomnij zresetować sekwencji kluczy podstawowych PG, aby wiedział, od którego klucza podstawowego zacząć. http://stackoverflow.com/questions/244243/how-to-reset-postgres-primary-key-sequence-when-it-falls-out-of-sync – umezo

1

Spójrz na krany (db:pull), twój przypadek użycia jest objęty przez this answered question, jak sądzę.

+0

Po uruchomieniu polecenia 'heroku db: pull - tabele tbl_name - app dbname', pojawia się następujący błąd: Nieprawidłowy adres URL bazy danych – dennismonsewicz

+0

nie jest już to możliwe. – Pak

4

@catsbys odpowiedzieć

Musiałem dodać port oraz

pg_dump --no-ACL --no-właściciela -h [adres IP] .compute-1.amazonaws. com -p [port] -U [nazwa użytkownika] -t [nazwa tabeli] - tylko-data [nazwa bazy danych]> table.dump

Powiązane problemy