diff --git a/server/alembic/versions/a1b8c6d4e2f9_material_items_project_list.py b/server/alembic/versions/a1b8c6d4e2f9_material_items_project_list.py index 4661c90..7c9fd2d 100644 --- a/server/alembic/versions/a1b8c6d4e2f9_material_items_project_list.py +++ b/server/alembic/versions/a1b8c6d4e2f9_material_items_project_list.py @@ -32,7 +32,12 @@ def upgrade() -> None: sa.Column('code', sa.String(length=80), nullable=False, server_default=''), sa.Column('description', sa.String(length=300), nullable=False, server_default=''), sa.Column('unit', sa.String(length=20), nullable=False, server_default=''), - sa.Column('active', sa.Boolean(), nullable=False, server_default=sa.text('1')), + # sa.true(), NOT sa.text('1'). sa.text() emits raw SQL, and Postgres refuses + # an integer default on a boolean column: "column active is of type boolean + # but default expression is of type integer". SQLite accepts 1 happily, so + # this passed every local test and failed only on the real engine. The + # sibling migration e2a4c7d91b30 does the identical column correctly. + sa.Column('active', sa.Boolean(), nullable=False, server_default=sa.true()), sa.Column('sort', sa.Integer(), nullable=False, server_default='0'), sa.Column('created_at', sa.DateTime(timezone=True), nullable=True), sa.PrimaryKeyConstraint('id'),