Você não verificou erros durante a restauração do banco de dados; deveria haver alguns.
Um dump de uma tabela como a sua ficará assim no PostgreSQL v10 (este é 10.3 e parece um pouco diferente em 10.1, mas isso é irrelevante para este caso):
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);
Agora o problema é que
AS integer
foi apresentado a CREATE SEQUENCE
no PostgreSQL v10, então essa instrução falhará com um erro de sintaxe na versão 9.6. Qual é a consequência?
-
A tabela é criada como na primeira instrução.
-
A terceira instrução que cria a sequência falha.
-
Todas as instruções a seguir que exigem a sequência também falharão.
Observação: Não há suporte para fazer downgrade do PostgeSQL com dump e restauração.
A solução é editar manualmente o dump até que funcione, em particular você terá que remover o
AS integer
ou AS bigint
cláusula em CREATE SEQUENCE
.