U heeft niet gecontroleerd op fouten tijdens het herstellen van de database; er hadden er een paar moeten zijn.
Een dump van een tabel zoals de jouwe ziet er als volgt uit in PostgreSQL v10 (dit is 10.3 en het ziet er iets anders uit in 10.1, maar dat is in dit geval niet relevant):
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);
Het probleem is nu dat AS integer
maakte kennis met CREATE SEQUENCE
in PostgreSQL v10, dus dat statement zal mislukken met een syntaxisfout in 9.6.
Wat is het gevolg?
-
De tabel wordt gemaakt zoals in de eerste instructie.
-
De derde instructie die de reeks maakt, mislukt.
-
Alle volgende instructies die de reeks vereisen, zullen ook mislukken.
Opmerking: Het wordt niet ondersteund om PostgeSQL te downgraden met dump en restore.
De oplossing is om de dump handmatig te bewerken totdat deze werkt, in het bijzonder moet u de AS integer
verwijderen of AS bigint
clausule in CREATE SEQUENCE
.