Zmieniamy hosty, a stary udostępnił zrzut SQL bazy danych PostgreSQL naszej witryny.
Teraz próbuję skonfigurować to na lokalnym serwerze WAMP, aby to przetestować.
Jedynym problemem jest to, że nie mam pojęcia, jak zaimportować tę bazę danych do PostgreSQL 9, który skonfigurowałem.
Próbowałem pgAdmin III, ale nie mogę znaleźć funkcji „importowania”. Więc właśnie otworzyłem edytor SQL i wkleiłem tam zawartość zrzutu i wykonałem go, tworzy on tabele, ale ciągle wyświetla mi błędy, gdy próbuje umieścić w nim dane.
ERROR: syntax error at or near "t"
LINE 474: t 2011-05-24 16:45:01.768633 2011-05-24 16:45:01.768633 view...
The lines:
COPY tb_abilities (active, creation, modtime, id, lang, title, description) FROM stdin;
t 2011-05-24 16:45:01.768633 2011-05-24 16:45:01.768633 view nl ...
Próbowałem również to zrobić za pomocą wiersza polecenia, ale nie mogę znaleźć polecenia, którego potrzebuję.
Jeśli zrobię
psql mydatabase < C:/database/db-backup.sql;
Dostaję błąd
ERROR: syntax error at or near "psql"
LINE 1: psql mydatabase < C:/database/db-backu...
^
Jaki jest najlepszy sposób na zaimportowanie bazy danych?
database
postgresql
olśnić
źródło
źródło
ERROR: syntax error at or near "t"
. Okazało się, że zaimportowałem tylko częściowy schemat, dlategoCREATE TABLE
nie udało się wypowiedzieć wcześniej w skrypcie. Przejrzyj pełne dane wyjściowe importu, aby je znaleźć.Odpowiedzi:
To polecenie, którego szukasz.
Uwaga:
databasename
należy utworzyć przed importem. Wystarczy popatrzeć na PostgreSQL Docs Rozdział 23. Kopia zapasowa i przywracanie .źródło
-f
przełącznika (lub--file
)Oto polecenie, którego szukasz.
źródło
pg_restore -h hostname -d dbname -U username filename.sql
Wierzę, że chcesz uruchomić w psql:
źródło
To działało dla mnie:
źródło
Nie jestem pewien, czy to działa w sytuacji OP, ale stwierdziłem, że uruchomienie następującego polecenia w interaktywnej konsoli było dla mnie najbardziej elastycznym rozwiązaniem:
Upewnij się tylko, że jesteś już podłączony do właściwej bazy danych. To polecenie wykonuje wszystkie polecenia SQL z określonego pliku.
źródło
psql
wiersza poleceń. Dzięki!Działa całkiem dobrze, w wierszu poleceń wymagane są wszystkie argumenty, -W to hasło
źródło
Tylko dla miłośników, jeśli twój zrzut jest skompresowany, możesz zrobić coś takiego
gunzip -c filename.gz | psql dbname
Jak wspomniał Jacob, dokumenty PostgreSQL opisują to wszystko całkiem dobrze.
źródło
Używam:
Mam nadzieję, że to komuś pomoże.
źródło
Możesz to zrobić w pgadmin3. Upuść schematy, które zawiera zrzut. Następnie kliknij bazę danych prawym przyciskiem myszy i wybierz Przywróć. Następnie możesz wyszukać plik zrzutu.
źródło
Zauważyłem, że wiele przykładów jest zbyt skomplikowanych dla hosta lokalnego, gdzie w wielu przypadkach istnieje tylko użytkownik postgres bez hasła:
źródło
upewnij się, że baza danych, do której chcesz zaimportować, została utworzona, a następnie możesz zaimportować zrzut
Jeśli chcesz zastąpić całą bazę danych, najpierw usuń bazę danych
a następnie odtwórz go za pomocą
źródło
Próbowałem wielu różnych rozwiązań do przywracania kopii zapasowej Postgres. Natknąłem się na odmowę zgody na MacOS, żadne rozwiązanie nie działało.
Oto jak udało mi się to uruchomić:
Postgres jest dostarczany z Pgadmin4. Jeśli używasz systemu macOS, możesz nacisnąć
CMD
+SPACE
i wpisać,pgadmin4
aby go uruchomić. Spowoduje to otwarcie karty przeglądarki w chrome.Kroki do uzyskania kopii zapasowej / przywracania pgadmin4 +
1. Utwórz kopię zapasową
Zrób to, klikając bazę danych prawym przyciskiem myszy -> „kopia zapasowa”
2. Nadaj plikowi nazwę.
Jak
test12345
. Kliknij kopię zapasową. Tworzy to zrzut pliku binarnego, nie ma.sql
formatu3. Zobacz, gdzie został pobrany
W prawym dolnym rogu ekranu powinno być wyskakujące okienko. Kliknij stronę „więcej szczegółów”, aby zobaczyć, gdzie została pobrana kopia zapasowa
4. Znajdź lokalizację pobranego pliku
W tym przypadku tak jest
/users/vincenttang
5. Przywróć kopię zapasową z pgadmin
Zakładając, że poprawnie wykonałeś kroki od 1 do 4, będziesz mieć plik binarny przywracania. Może się zdarzyć, że Twój współpracownik będzie chciał użyć pliku przywracania na swoim komputerze lokalnym. Powiedz tej osobie, aby poszła do pgadmin i przywróciła
Zrób to, klikając bazę danych prawym przyciskiem myszy -> „przywróć”
6. Wybierz wyszukiwarkę plików
Pamiętaj, aby ręcznie wybrać lokalizację pliku, NIE przeciągaj i nie upuszczaj pliku na pola programu przesyłającego w pgadmin. Ponieważ napotkasz uprawnienia do błędu. Zamiast tego znajdź właśnie utworzony plik:
7. Znajdź wspomniany plik
Może być konieczna zmiana filtra u dołu na „Wszystkie pliki”. Znajdź plik od kroku 4. Teraz naciśnij prawy przycisk „Wybierz”, aby potwierdzić
8. Przywróć wspomniany plik
Ponownie zobaczysz tę stronę z wybraną lokalizacją pliku. Śmiało i przywróć go
9. Sukces
Jeśli wszystko jest w porządku, w prawym dolnym rogu powinien wyskoczyć wskaźnik pokazujący udane przywracanie. Możesz przejść do swoich tabel, aby sprawdzić, czy dane zostały przywrócone dla każdej tabeli.
10. Jeśli to się nie powiedzie:
Jeśli krok 9 nie powiedzie się, spróbuj usunąć stary schemat publiczny z bazy danych. Przejdź do „Narzędzia do wysyłania zapytań”
Wykonaj ten blok kodu:
Teraz spróbuj ponownie wykonać kroki od 5 do 9, powinno się to udać
Podsumowanie
W ten sposób musiałem wykonać kopię zapasową / przywrócić kopię zapasową na Postgres, gdy miałem problemy z uprawnieniami do błędów i nie mogłem zalogować się jako administrator. Lub ustaw poświadczenia do odczytu / zapisu przy użyciu
chmod
folderów. Ten przepływ pracy działa dla domyślnego zrzutu pliku binarnego „Niestandardowy” z pgadmin. Zakładam, że.sql
jest tak samo, ale jeszcze tego nie przetestowałemźródło