Właśnie zaktualizowałem do Postgres 10.2 na Mac OS, który pasuje do 10.2 na Heroku. Próbuję pobrać kopię bazy danych i przywrócić ją lokalnie. Przed aktualizacją przywrócenie będzie działać dobrze.
biegnę
pg_restore --verbose --clean --no-acl --no-owner -h localhost -d database_name backup.dump
ale otrzymuję ten błąd:
pg_restore: [archiwizator] nieobsługiwana wersja (1.13) w nagłówku pliku
Baza danych wydaje się działać poprawnie. Jest to aplikacja rails, a ja zaktualizowałem pg gems. Mogę biegać rake db:create
i db:migrate
po prostu dobrze.
źródło
brew upgrade postgresql
brew postgresql-upgrade-database
brew upgrade postgresql && brew postgresql-upgrade-database
rzeczywiście rozwiązują problem, ale moje lokalne bazy danych zostały po drodze usunięte. Utwórz ich kopię zapasową, jeśli masz krytyczne dane!Napotkałem ten sam problem dzisiaj, nie wiem, czy coś się zmieniło po stronie Heroku, ponieważ lokalnie używam 9.6, ale moja baza danych na Heroku to 9.4, więc nie wydawało się, że chodzi o różnicę punktów wersji (to działał do dziś).
Jeśli używasz Postgres.app ( https://postgresapp.com/ ) na komputerze Mac, upewnij się, że korzystasz
v2.1.3
(w chwili pisania tego tekstu jest to najnowsza wersja). Po uaktualnieniu Postgres.app otrzymujesz najnowszą wersję poprawki Postgres (co prawdopodobnie powoduje niezgodność, której obecnie doświadczasz - Heroku zaktualizowało do najnowszej poprawki bezpieczeństwa, a Twój lokalny komputer może jej nie mieć).źródło
Od wczoraj (03.01.2018) mieliśmy również problemy z przywróceniem kopii zapasowej z Heroku działającej na PostgreSQL 9.5:
Aktualizacja naszej wersji PostgreSQL z 9.5.11 do 9.5.12 rozwiązała problem.
źródło
Gdy pierwszy raz miałem ten problem, oto jak przywróciłem bazę danych Heroku do mojego lokalnego:
źródło
heroku pg:pull
. Ale to nie jest odpowiednia poprawka, ponieważ nadal nie można lokalnie przywrócić poprzedniego zrzutu heroku, również myślę, że podczas ściągania wykorzystuje on zasoby bazy danych na żywo.Dla tych, którzy próbują zaktualizować postgresql w Ubuntu bez powodzenia (jak skomentował Johana powyżej), spróbuj użyć repozytorium apt PostgreSQL, zgodnie z oficjalnymi instrukcjami pobierania PostgreSQL: https://www.postgresql.org/download/linux/ubuntu /
źródło
Poprawka dla mnie obejmowała zarówno aktualizację mojego Postgres.app, jak i aktualizację mojego lokalnego homebrew PostgreSQL.
Zaktualizuj moją aplikację Postgres.app za pomocą odpowiedzi Canuk:
Zaktualizuj mój lokalny homebrew PostgreSQL za pośrednictwem komentarza gerry3 dotyczącego zaakceptowanej odpowiedzi:
brew upgrade postgresql
brew postgresql-upgrade-database
źródło
Miałem ten problem w systemie Windows przy użyciu pgAdmin 3.
Aktualizacja z pgAdmin 3 do pgAdmin 4 rozwiązała problem za mnie.
źródło
pg_restore
pomyślnie.Nie polecam aktualizowania bazy danych do nowej wersji głównej lokalnie (stosuj poprawki bezpieczeństwa) tylko po to, aby to naprawić, ponieważ chcesz, aby pasowało do dowolnej wersji, którą masz w produkcji.
Naprawiło to w systemie Ubuntu 16.04, przywracając z bazy danych Heroku.
Najpierw upewnij się, że masz repozytorium postgresql, o którym wspomniał diego. Następnie zainstaluj zaktualizowanego klienta.
sudo apt-get update && sudo apt-get install postgresql-client-10
Jeśli używasz Ubuntu 17.04 lub 17.10, pamiętaj, że repozytorium Zesty Repo PostgreSQL nie ma zaktualizowanego klienta, którego potrzebujesz. Zamiast tego będziesz chciał użyć repozytorium xenial Postgres.
źródło
Unable to locate package postgresql-client-10
kiedy to robięOto jak rozwiązałem problem w Ubuntu (16.04 LTS), w którym pg_restore / pg_dump dał mi starszą wersję, z psql
Problem polega na tym, że mam zainstalowanych wiele wersji pg, a pg_restore wskazywał na wcześniejszą wersję
Poprawka polega na utworzeniu pliku ~ / .postgresqlrc wskazującego na poprawną wersję
Po wykonaniu tej czynności pg_restore wskazuje na poprawną wersję i polecenie przechodzi
Szczegóły podane tutaj: /server/610777/wrong-version-of-pg-dump-on-ubuntu
źródło
Napotkałem ten problem na pgadmin III i udało mi się go naprawić poprzez zmianę lokalizacji plików binarnych:
Menu Plik> Opcje> Ścieżki binarne, a następnie zmieniono „PG bin path” na postgresql / 9.x / bin zamiast na ProgramFiles / pgadmin. Przywrócenie zadziałało później.
źródło
Używasz starej wersji pliku binarnego pg_restore, która nie obsługuje przywracania dostarczonego pliku zrzutu. Upewnij się, że używasz najnowszej wersji Postgres, która musi być nowsza niż następująca wersja: https://www.postgresql.org/about/news/1834/ (10.3, 9.6.8, 9.5.12, 9.4.17 i 9.3.22).
Możesz sprawdzić wersję pg_restore, której używasz, uruchamiając pg_restore --version.
Jeśli używasz narzędzia innej firmy, takiego jak PgAdmin, do przywrócenia dostarczonego pliku zrzutu, przywracanie może się nie powieść, nawet jeśli zainstalowana wersja Postgres jest aktualna. Wynika to z tego, że narzędzia innych firm często łączą własne wersje pliku binarnego pg_restore, które mogą nie być aktualne.
źródło
Napotkałem ten sam błąd. Zaktualizowałem lokalnie do postgresql 10.3 i to rozwiązało problem.
źródło
Dla Windowsa:
Otwórz wiersz polecenia (
cmd
), a następnie przejdź do lokalizacjiC:\Program Files\PostgreSQL\9.6\bin
i uruchom następujące polecenia:Mam nadzieję, że to ci pomoże
źródło
Pobiegłem w tym samym numerze 10 minut temu i dowiedziałem się o tym wątku z 2005 roku: https://www.postgresql.org/message-id/1106163722.780395.266900%40z14g2000cwz.googlegroups.com
Zasadniczo facet mówi, że plik zrzutu jest uszkodzony.
źródło