2013-04-03 20 views

cevap

55

Öyle gibi verilerin tek bir tablo dökümü:

$ 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 

Bu işle gerekli tüm değerleri alabilirsiniz: Bu şifre isteyecektir

$ 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] 

. Girin ve yerel sürücünüzde bir dosya almak için table.dump'a devam edin. Eğer evreleme app için pg:credentials için yeni bir çağrı ait Connection URL: çıkışı ile psql kullanmak ve sadece bu tabloyu geri yükleyebilirsiniz, bu dosya ile

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

:

Muhtemelen evreleme tabloyu kesmek istiyorum .

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

Yardımlarınız için çok teşekkürler! – dennismonsewicz

+7

Birden fazla tabloya ihtiyacınız varsa, her tablo için -t anahtarını ekleyin. Yani, pg_dump --no-acl --no-sahibi -h [ana bilgisayar ip] .compute-1.amazonaws.com -U [kullanıcı adı] -t [tablo adı 1] -t [tablo adı 2] -t [tablo adı 3] --data [veritabanı adı]> table.dump' – vansan

+2

Bu harika çalıştı, teşekkürler. Bunu yapan diğerleri için: Yukarıdaki adımları tamamladıktan sonra, PG birincil anahtar sıranızı sıfırlamayı unutmayın, böylece hangi birincil anahtarın başlayacağını bilmesini sağlayın. http://stackoverflow.com/questions/244243/how-to-reset-postgres-primary-key-sequence-when-it-falls-out-of-sync – umezo

1

Musluklara bir göz atın (db:pull), kullanım durumunuz this answered question kapsamındadır.

+0

"heroku db: pull --tables tbl_name - komutunu çalıştırdığımda - app dbname', aşağıdaki hatayı alıyorum: Geçersiz veritabanı URL'si – dennismonsewicz

+0

bu artık mümkün değil. – Pak

4

@catsbys

Ben de

pg_dump no-acl --no sahibi -h [konak ip] .compute-1.amazonaws portunu eklemek için gerekli cevap. com -p [port] -U [kullanıcı adı] -t [tablo adı] - sadece veri [veritabanı adı]> tablo.dump

İlgili konular