Saya mencoba mengembalikan file dump saya, tetapi menyebabkan kesalahan:
psql:psit.sql:27485: invalid command \N
Apakah ada solusinya? Saya mencari, tetapi saya tidak mendapatkan jawaban yang jelas.
sql
postgresql
dump
Vivek Vikranth
sumber
sumber
create table...
gagal di awal, tetapi memuat berlanjut.(pg_restore ... | psql ...) 2>&1 | less
Saya pergi pesan kesalahan yang sama ketika mencoba untuk memulihkan dari dump biner. Saya hanya digunakan
pg_restore
untuk mengembalikan dump saya dan sepenuhnya menghindari\N
kesalahan, misalnyapg_restore -c -F t -f your.backup.tar
Penjelasan sakelar:
-f, --file=FILENAME output file name -F, --format=c|d|t backup file format (should be automatic) -c, --clean clean (drop) database objects before recreating
sumber
Saya tahu ini adalah posting lama tapi saya menemukan solusi lain: postgis tidak diinstal pada versi baru saya, yang menyebabkan saya kesalahan yang sama pada pg_dump
sumber
Saya telah mengalami kesalahan ini di masa lalu juga. Pavel benar, biasanya merupakan tanda bahwa sesuatu dalam skrip yang dibuat oleh pg_restore gagal. Karena semua kesalahan "/ N", Anda tidak melihat masalah sebenarnya di bagian paling atas dari output. Saya menyarankan:
pg_restore --table=orders full_database.dump > orders.dump
)orders.dump
dan hapus banyak catatan)Dalam kasus saya, saya belum menginstal ekstensi "hstore", jadi skripnya gagal di bagian paling atas. Saya menginstal hstore pada database tujuan, dan saya kembali berbisnis.
sumber
Anda dapat menghasilkan dump Anda menggunakan pernyataan INSERTS, dengan parameter --inserts.
sumber
Instal postgresql- (versi Anda) -postgis-skrip
sumber
Hal yang sama terjadi pada saya hari ini. Saya menangani masalah dengan membuang dengan perintah --inserts.
Apa yang saya lakukan adalah:
1) pg_dump dengan sisipan:
2) psql (pulihkan file yang Anda buang)
Catatan-1) Pastikan bahwa menambahkan outputfile akan meningkatkan kecepatan impor.
Catatan-2) Jangan lupa untuk membuat tabel dengan nama dan kolom yang sama persis sebelum mengimpor dengan psql.
sumber
Dalam pengalaman saya baru-baru ini, dimungkinkan untuk mendapatkan kesalahan ini ketika masalah sebenarnya tidak ada hubungannya dengan karakter melarikan diri atau baris baru. Dalam kasus saya, saya telah membuat dump dari database A dengan
pg_dump -a -t table_name > dump.sql
dan sedang mencoba mengembalikannya ke database B dengan
psql < dump.sql
(setelah memperbarui vars env yang tepat, tentu saja)Apa yang akhirnya saya tahu adalah dump itu, meskipun itu
data-only
(-a
opsi) , sehingga struktur tabel tidak secara eksplisit bagian dari dump), adalah skema khusus. Itu berarti bahwa tanpa secara manual memodifikasi dump, saya tidak bisa menggunakan dump yang dihasilkan darischema1.table_name
untuk mengisischema2.table_name
. Memodifikasi dump secara manual dengan mudah, skema ditentukan dalam 15 baris pertama atau lebih.sumber
Seringkali, solusinya adalah menginstal
postgres-contrib
paket.sumber
Bagi saya menggunakan postgreSQL 10 pada SUSE 12, saya menyelesaikan
invalid command \N
kesalahan dengan menambah ruang disk. Kurangnya ruang disk menyebabkan kesalahan bagi saya. Anda dapat mengetahui apakah Anda kehabisan ruang disk jika Anda melihat sistem file data Anda akan didf -h
output. Jika sistem file / mount digunakan 100%, setelah melakukan sesuatu sepertipsql -f db.out postgres
(lihat https://www.postgresql.org/docs/current/static/app-pg-dumpall.html ) Anda mungkin perlu menambah ruang disk yang tersedia .sumber
Saya memiliki masalah yang sama, saya membuat database baru dan
invalid command \N
memulihkan dengan psql. Saya memecahkannya dengan mengatur tablespace yang sama dengan database lama.Sebagai contoh, backup database lama memiliki tablespace "pg_default", saya mendefinisikan tablespace yang sama ke database baru, dan kesalahan di atas telah hilang!
sumber
Saya mengikuti semua contoh ini dan mereka semua gagal dengan kesalahan yang kita bicarakan:
Salin sebuah tabel dari satu basis data ke basis data lain di Postgres
Apa yang berhasil adalah sintaks dengan -C , lihat di sini:
sumber