GNU/Linux >> Znalost Linux >  >> Linux

Nelze pg_restore soubor SQL na vzdáleném virtuálním počítači Linux

'pg_restore' je určeno k obnovení souborů generovaných 'pg_dump'.

Z manuálové stránky

pg_restore je nástroj pro obnovu databáze PostgreSQL z anarchivu vytvořeného pomocí pg_dump(1) v jednom z formátů, které nejsou prostým textem.

https://www.postgresql.org/docs/9.2/static/app-pgrestore.html

Pokud váš soubor vygeneroval pg_dump, pravděpodobně mu budete muset alespoň sdělit, do které databáze se má uložit:

pg_restore -d my_new_database temp.sql

Moje vlastní zkušenost s pg_restore v různých variantách ukazuje, že mnohokrát potřebuji specifikovat formát souboru výpisu, i když byl v 'nativním' formátu, přestože manuálová stránka naznačovala, že by formát detekoval.

pg_restore -d my_new_database -Fc temp.dump

Je to jen odhad, ale myslím si, že pokud byly tabulky skutečně obnoveny, bez uvedení db, byly uloženy do výchozí databáze. Můžete to zkontrolovat uvedením tabulek v databázi 'postgres' (žádné by tam neměly být).

postgres=#\c postgres
You are now connected to database "postgres" as user "postgres".
postgres=#\dt
No relations found.

Pokud se vaše tabulky obnovily do výchozí databáze, budou uvedeny.

Se soubory SQL s prostým textem je třeba zacházet jinak, obvykle se spouští pomocí příkazů SQL pomocí psql.

psql -d my_database < temp.sql

Za předpokladu, že jste vytvořili zálohu databáze podobnou této:

pg_dump -a --inserts databasename > exportfilename.sql

Zkuste soubor obnovit takto:

psql databasename -f exportfilename.sql

Postgres pg_restore jak je uvedeno výše, je určeno pouze pro použití s ​​dump soubory, nemůžete to takto obnovit. Zkontrolujte tuto odpověď na oficiálních stránkách postgres.org

V podstatě ne použijte pg_restore s sql soubory --->https://www.postgresql.org/message-id/AANLkTi%3DAqmWrUR4f8%2BEfCHzP%2BQrL1%3DunRLZp_jX7SoqF%40mail.gmail.com


Linux
  1. Linux – všechno je soubor?

  2. Ukázkový soubor /etc/services v Linuxu

  3. Čtení souboru CSV s SQL dotazy z linuxového shellu

  1. Jak přesunout soubor v Linuxu

  2. Vysvětlení oprávnění souborů v systému Linux

  3. Vzdálená úprava pomocí lokálního editoru (Linux)

  1. Linux Tail Command

  2. Linux Touch Command

  3. Cat Command v Linuxu