Adding a PostgreSQL sequence with Alembic
If you change the primary key in a Postgres table, the Alembic auto migration script won't create a new sequence on the new key column.
This throws an error when you then try to insert a record into the table, as there's no autoincrement set on the primary key field. And it can't be set because there's no sequence.
The answer is:
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 ###
Written by Iain Campbell
Related protips
Have a fresh tip? Share with Coderwall community!
Post
Post a tip
Best
#Python
Authors
Sponsored by #native_company# — Learn More
#native_title#
#native_desc#