Okay, so this worked: op.execute(CreateSequence(Sequence("observation_id_seq"))) op.add_column('observation', sa.Column( 'id', sa.Integer(), nullable=False, server_default=sa.text("nextval('observation_id_seq'::regclass)") )) op.drop_constraint('observation_pkey', table_name='observation') op.create_primary_key('observation_pkey', 'observation', ['id'])
...but how come my original attempt didn't? cheers, Chris On 10/01/2017 08:03, Chris Withers wrote:
So, I screwed up and realised I really want an auto-incrementing integer as the primary key for a bunch of tables. I've changed my models, got all the tests passing and now I need to get the migrations done, I have: op.add_column('observation', sa.Column('id', sa.Integer(), nullable=False, autoincrement=True)) op.drop_constraint('observation_pkey', table_name='observation') op.create_primary_key('observation_pkey', 'observation', ['id']) According to this answer, this should work: http://stackoverflow.com/a/19262262/216229 ...but when running the migration, I get: sqlalchemy.exc.IntegrityError: (psycopg2.IntegrityError) column "id" contains null values [SQL: 'ALTER TABLE observation ADD COLUMN id INTEGER NOT NULL'] ...so what am I doing wrong? cheers, Chris
-- You received this message because you are subscribed to the Google Groups "sqlalchemy-alembic" group. To unsubscribe from this group and stop receiving emails from it, send an email to sqlalchemy-alembic+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.