Adicionando uma sequência PostgreSQL com Alembic

Se você alterar a chave primária em uma tabela Postgres, o script de migração automática do Alembic não criará uma nova sequência na nova coluna de chave.

Isso gera um erro quando você tenta inserir um registro na tabela, pois não há incremento automático definido no campo de chave primária. E não pode ser definido porque não há sequência.

A resposta é:

from sqlalchemy.schema import Sequence, CreateSequence

def upgrade():
### commands auto generated by Alembic - please adjust! ###
op
.execute(CreateSequence(Sequence('table_id_seq')))
op
.alter_column("table", "id", nullable=False, server_default=sa.text("nextval('table_id_seq'::regclass)"))
### end Alembic commands ###