Mercurial > libervia-backend
diff sat/memory/migration/versions/4b002773cf92_add_origin_id_column_to_history_and_.py @ 3796:24c1c06c865b
core (memory/mapping): add `origin_id` column to History + constraints update:
- `origin_id` is added as a column instead of being just in extra, as it an important data
to filter on.
- Add some constraints.
- Add `serialise` method to Message and Subject.
author | Goffi <goffi@goffi.org> |
---|---|
date | Fri, 17 Jun 2022 14:15:23 +0200 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/sat/memory/migration/versions/4b002773cf92_add_origin_id_column_to_history_and_.py Fri Jun 17 14:15:23 2022 +0200 @@ -0,0 +1,60 @@ +"""add origin_id column to history and adapt constraints + +Revision ID: 4b002773cf92 +Revises: 79e5f3313fa4 +Create Date: 2022-06-13 16:10:39.711634 + +""" +from alembic import op +import sqlalchemy as sa + + +# revision identifiers, used by Alembic. +revision = '4b002773cf92' +down_revision = '79e5f3313fa4' +branch_labels = None +depends_on = None + + +def upgrade(): + with op.batch_alter_table('history', schema=None) as batch_op: + batch_op.add_column(sa.Column('origin_id', sa.Text(), nullable=True)) + batch_op.create_unique_constraint('uq_origin_id', ['profile_id', 'origin_id', 'source']) + + with op.batch_alter_table('message', schema=None) as batch_op: + batch_op.alter_column('history_uid', + existing_type=sa.TEXT(), + nullable=False) + batch_op.alter_column('message', + existing_type=sa.TEXT(), + nullable=False) + + with op.batch_alter_table('subject', schema=None) as batch_op: + batch_op.alter_column('history_uid', + existing_type=sa.TEXT(), + nullable=False) + batch_op.alter_column('subject', + existing_type=sa.TEXT(), + nullable=False) + + +def downgrade(): + with op.batch_alter_table('subject', schema=None) as batch_op: + batch_op.alter_column('subject', + existing_type=sa.TEXT(), + nullable=True) + batch_op.alter_column('history_uid', + existing_type=sa.TEXT(), + nullable=True) + + with op.batch_alter_table('message', schema=None) as batch_op: + batch_op.alter_column('message', + existing_type=sa.TEXT(), + nullable=True) + batch_op.alter_column('history_uid', + existing_type=sa.TEXT(), + nullable=True) + + with op.batch_alter_table('history', schema=None) as batch_op: + batch_op.drop_constraint('uq_origin_id', type_='unique') + batch_op.drop_column('origin_id')