Anda tidak memeriksa kesalahan selama pemulihan database; seharusnya ada beberapa.
Dump dari tabel seperti milik Anda akan terlihat seperti ini di PostgreSQL v10 (ini 10.3 dan terlihat sedikit berbeda di 10.1, tapi itu tidak relevan untuk kasus ini):
CREATE TABLE public.produto (
produto_id integer NOT NULL
);
ALTER TABLE public.produto OWNER TO laurenz;
CREATE SEQUENCE public.produto_produto_id_seq
AS integer
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER TABLE public.produto_produto_id_seq OWNER TO laurenz;
ALTER SEQUENCE public.produto_produto_id_seq
OWNED BY public.produto.produto_id;
ALTER TABLE ONLY public.produto
ALTER COLUMN produto_id
SET DEFAULT nextval('public.produto_produto_id_seq'::regclass);
Sekarang masalahnya adalah AS integer
diperkenalkan ke CREATE SEQUENCE
di PostgreSQL v10, sehingga pernyataan itu akan gagal dengan kesalahan sintaksis di 9.6.
Apa akibatnya?
-
Tabel dibuat seperti pada pernyataan pertama.
-
Pernyataan ketiga yang membuat urutan gagal.
-
Semua pernyataan berikut yang memerlukan urutan juga akan gagal.
Catatan: Tidak didukung untuk menurunkan versi PostgeSQL dengan dump dan restore.
Solusinya adalah mengedit dump secara manual hingga berfungsi, khususnya Anda harus menghapus AS integer
atau AS bigint
klausa dalam CREATE SEQUENCE
.