Du tjekkede ikke for fejl under gendannelse af databasen; der skulle have været et par stykker.
Et dump af en tabel som din vil se sådan ud i PostgreSQL v10 (dette er 10.3 og det ser lidt anderledes ud i 10.1, men det er irrelevant i dette tilfælde):
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);
Nu er problemet, at AS integer
blev introduceret til CREATE SEQUENCE
i PostgreSQL v10, så den sætning vil mislykkes med en syntaksfejl i 9.6.
Hvad er konsekvensen?
-
Tabellen oprettes som i den første sætning.
-
Den tredje sætning, der skaber sekvensen, mislykkes.
-
Alle følgende udsagn, der kræver sekvensen, vil også mislykkes.
Bemærk: Det er ikke understøttet at nedgradere PostgeSQL med dump og gendannelse.
Løsningen er at redigere dumpet manuelt, indtil det virker, især skal du fjerne AS integer
eller AS bigint
klausul i CREATE SEQUENCE
.