2012-01-10 5 views
6

Próbuję przenieść dane z mojego produkcyjnego DB do mojej bazy danych DB bez powodzenia.Jak przenieść dane z mojego DB produkcyjnego do mojej bazy danych DB w heroku?

Obserwuję dokumentacji Heroku na jej temat: http://devcenter.heroku.com/articles/pgbackups#transfers

Są to komendy Zabrakło mi ...

$ heroku addons:add pgbackups --remote staging 
$ heroku addons:add pgbackups --remote production 
$ heroku pgbackups:capture --remote production 
$ heroku pgbackups:restore DATABASE `heroku pgbackups:url --remote production` --remote staging 

I to jest wiadomość otrzymuję ...

Usage: heroku pgbackups:restore [<DATABASE> [BACKUP_ID|BACKUP_URL]] 

restore a backup to a database 

if no DATABASE is specified, defaults to DATABASE_URL and latest backup 
if DATABASE is specified, but no BACKUP_ID, defaults to latest backup 

Wygląda na to, że piszę coś źle, ale nie mogę tego rozgryźć.

Próbowałem też to samo polecenie używając nazwy z aplikacji zamiast pilota ...

$ heroku pgbackups:restore DATABASE `heroku pgbackups:url --app myapp` --app myapp-staging 

Ale pojawia się ten sam komunikat ze nie rzeczywiste przeniesienie dzieje.

Każda pomoc jest głęboko doceniana.

Odpowiedz

11

Nie sądzę, że złapałeś poprawnie. Zawsze używaj --app zamiast --remote

$ heroku pgbackups:capture --app myapp 
$ heroku pgbackups:restore DATABASE `heroku pgbackups:url --app myapp` --app myapp-staging 
+0

Dzięki Neil. Właśnie próbowałem tego i otrzymuję '! Błąd "Nie znaleziono zasobu". Uruchomiłem też 'heroku pgbackups --app myapp' i poprawnie pokazuje mi moje kopie zapasowe, więc zasób tam jest, po prostu go nie ładuje. – rebagliatte

+0

'resource not found' jest zwykle zwracany, gdy używasz nieprawidłowej nazwy aplikacji - powinny być one wymienione na stronie myapps na stronie heroku. Polecenie Neils jest dokładnie poprawne, ponieważ sam go użyłem. –

+0

Dzięki John, przysięgam, że używam odpowiednich nazwisk. Właśnie sprawdziłem, czy uruchamianie 'heroku apps' – rebagliatte

4

Nie wiem, czy Heroku się zmieniło, ponieważ zostały one wysłane w styczniu ubiegłego roku, ale gdy uruchamiam

heroku pgbackups:restore DATABASE `heroku pgbackups:url --app myapp` --app myapp-staging 

Ciągle otrzymuję błąd, że po prostu powiedział

"! Backup not found"

Mimo że uruchomiłem komendę samodzielnie, aby uzyskać adres URL:

heroku pgbackups:url --app myapp 

, a następnie wypróbował adres URL w przeglądarce, adres URL był prawidłowy.

Więc zamiast po prostu próbował wysyłając skopiowany/wklejone URL do polecenia zamiast, jak:

heroku pgbackups:restore DATABASE "http://urlgoeshere" --app myapp-staging 

musiałem użyć cudzysłowy wokół zawartości, nie apostrofów. W przeciwnym razie wystąpił ten błąd:

The filename, directory name, or volume label syntax is incorrect. 'Expires' is not recognized as an internal or external command, operable program or batch file. 'Signature' is not recognized as an internal or external command, operable program or batch file.

+0

Miałem ten sam problem, a wklejenie adresu URL, jak mówi Gayle, działało dla mnie. –

+0

Ktoś skomentował nasze Centrum deweloperów, że spotkał się z tym samym problemem, ale nie udało mi się odtworzyć tego problemu. Czy możesz mi powiedzieć, jaki błąd widziałeś (jeśli jest coś więcej niż "Nie znaleziono kopii zapasowej" powyżej), jeśli nadal widzisz problem, co się stanie, gdy wcześniej uruchomisz 'set -x' (później uruchom' set + x' aby ponownie wyłączyć echo) i jakiej powłoki i systemu operacyjnego używasz (jestem z Heroku Postgres)? –