Během obnovy databáze jste nezkontrolovali chyby; mělo jich být několik.
Výpis tabulky, jako je ta vaše, bude v PostgreSQL v10 vypadat takto (toto je 10.3 a ve verzi 10.1 vypadá trochu jinak, ale to je v tomto případě irelevantní):
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);
Nyní je problém v tom, že AS integer
byl zaveden do CREATE SEQUENCE
v PostgreSQL v10, takže tento příkaz selže s chybou syntaxe v 9.6.
Jaký je důsledek?
-
Tabulka je vytvořena jako v prvním příkazu.
-
Třetí příkaz vytvářející sekvenci se nezdaří.
-
Všechny následující příkazy, které vyžadují sekvenci, také selžou.
Poznámka: Není podporováno downgrade PostgeSQL pomocí výpisu a obnovení.
Řešením je ručně upravovat výpis, dokud nebude fungovat, zejména budete muset odstranit AS integer
nebo AS bigint
klauzule v CREATE SEQUENCE
.