view sat/memory/migration/versions/4b002773cf92_add_origin_id_column_to_history_and_.py @ 4037:524856bd7b19

massive refactoring to switch from camelCase to snake_case: historically, Libervia (SàT before) was using camelCase as allowed by PEP8 when using a pre-PEP8 code, to use the same coding style as in Twisted. However, snake_case is more readable and it's better to follow PEP8 best practices, so it has been decided to move on full snake_case. Because Libervia has a huge codebase, this ended with a ugly mix of camelCase and snake_case. To fix that, this patch does a big refactoring by renaming every function and method (including bridge) that are not coming from Twisted or Wokkel, to use fully snake_case. This is a massive change, and may result in some bugs.
author Goffi <goffi@goffi.org>
date Sat, 08 Apr 2023 13:54:42 +0200
parents 24c1c06c865b
children
line wrap: on
line source

"""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')