tortoise / aerich

A database migrations tool for TortoiseORM, ready to production.
https://github.com/tortoise/aerich
Apache License 2.0
804 stars 90 forks source link

Fix changed column descriptions in diffs #320

Closed strayge closed 10 months ago

strayge commented 10 months ago

Summary

Detect changes in column descriptions.

Bug

On each enum change linked to EnumField aerich generates useless ALTER TABLE.

Steps to reproduce

  1. create model with EnumField
  2. aerich init-db
  3. add field to enum
  4. aerich migrate
  5. check new migration

Before

async def upgrade(db: BaseDBAsyncClient) -> str:
    return """
        ALTER TABLE "somemodel" ALTER COLUMN "field" TYPE VARCHAR(6) USING "field"::VARCHAR(6);"""

async def downgrade(db: BaseDBAsyncClient) -> str:
    return """
        ALTER TABLE "somemodel" ALTER COLUMN "field" TYPE VARCHAR(6) USING "field"::VARCHAR(6);"""

After

async def upgrade(db: BaseDBAsyncClient) -> str:
    return """
        COMMENT ON COLUMN "somemodel"."field" IS 'VALUE1: VALUE1
VALUE2: VALUE2
VALUE3: VALUE3';"""

async def downgrade(db: BaseDBAsyncClient) -> str:
    return """
        COMMENT ON COLUMN "somemodel"."field" IS 'VALUE1: VALUE1
VALUE2: VALUE2';"""
long2ice commented 10 months ago

Thanks!