From 0b14f0fe913b82681c61bcec7fb16b6e0cd4ec4d Mon Sep 17 00:00:00 2001 From: DevPatils Date: Fri, 24 Jul 2026 22:25:42 +0530 Subject: [PATCH 1/3] Add missing document_metadata column migration Bugs 1 and 2 from #994 were already fixed upstream (uq_pair rename removal in a55e380, heads merged via c7d8e9f0a1b2's pgvector migration). This delivers the remaining fix: no migration anywhere created the document_metadata column that Node and CRE models require, causing a crash the moment any code queries it on a freshly-migrated database. Defensively checks for existing column first, since production may already have it applied out-of-band. Verified end-to-end on a fresh Postgres database (with pgvector): full migration chain completes, single head, document_metadata present on both tables. Addresses #994 --- ...dd_missing_document_metadata_column_to_.py | 42 +++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 migrations/versions/b5ac48010165_add_missing_document_metadata_column_to_.py diff --git a/migrations/versions/b5ac48010165_add_missing_document_metadata_column_to_.py b/migrations/versions/b5ac48010165_add_missing_document_metadata_column_to_.py new file mode 100644 index 000000000..adfccba93 --- /dev/null +++ b/migrations/versions/b5ac48010165_add_missing_document_metadata_column_to_.py @@ -0,0 +1,42 @@ +"""add missing document_metadata column to node and cre + +Revision ID: b5ac48010165 +Revises: c7d8e9f0a1b2 +Create Date: 2026-07-24 22:19:01.724833 + +""" +from alembic import op +import sqlalchemy as sa +from sqlalchemy import inspect + + +# revision identifiers, used by Alembic. +revision = 'b5ac48010165' +down_revision = 'c7d8e9f0a1b2' +branch_labels = None +depends_on = None + + +def upgrade(): + # Defensive: some environments (e.g. production) already have this column + # applied out-of-band without a corresponding migration ever being + # committed, so this must not assume a clean "column doesn't exist" state. + inspector = inspect(op.get_bind()) + node_columns = {c["name"] for c in inspector.get_columns("node")} + cre_columns = {c["name"] for c in inspector.get_columns("cre")} + + if "document_metadata" not in node_columns: + with op.batch_alter_table("node", schema=None) as batch_op: + batch_op.add_column(sa.Column("document_metadata", sa.JSON(), nullable=True)) + + if "document_metadata" not in cre_columns: + with op.batch_alter_table("cre", schema=None) as batch_op: + batch_op.add_column(sa.Column("document_metadata", sa.JSON(), nullable=True)) + + +def downgrade(): + with op.batch_alter_table("cre", schema=None) as batch_op: + batch_op.drop_column("document_metadata") + + with op.batch_alter_table("node", schema=None) as batch_op: + batch_op.drop_column("document_metadata") From c43f5de03c89c6de1d6958883ab86753857fc7df Mon Sep 17 00:00:00 2001 From: DevPatils Date: Thu, 6 Aug 2026 19:35:36 +0530 Subject: [PATCH 2/3] style: format code for consistency in migration file --- ...0165_add_missing_document_metadata_column_to_.py | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/migrations/versions/b5ac48010165_add_missing_document_metadata_column_to_.py b/migrations/versions/b5ac48010165_add_missing_document_metadata_column_to_.py index adfccba93..e55c6af60 100644 --- a/migrations/versions/b5ac48010165_add_missing_document_metadata_column_to_.py +++ b/migrations/versions/b5ac48010165_add_missing_document_metadata_column_to_.py @@ -5,14 +5,15 @@ Create Date: 2026-07-24 22:19:01.724833 """ + from alembic import op import sqlalchemy as sa from sqlalchemy import inspect # revision identifiers, used by Alembic. -revision = 'b5ac48010165' -down_revision = 'c7d8e9f0a1b2' +revision = "b5ac48010165" +down_revision = "c7d8e9f0a1b2" branch_labels = None depends_on = None @@ -27,11 +28,15 @@ def upgrade(): if "document_metadata" not in node_columns: with op.batch_alter_table("node", schema=None) as batch_op: - batch_op.add_column(sa.Column("document_metadata", sa.JSON(), nullable=True)) + batch_op.add_column( + sa.Column("document_metadata", sa.JSON(), nullable=True) + ) if "document_metadata" not in cre_columns: with op.batch_alter_table("cre", schema=None) as batch_op: - batch_op.add_column(sa.Column("document_metadata", sa.JSON(), nullable=True)) + batch_op.add_column( + sa.Column("document_metadata", sa.JSON(), nullable=True) + ) def downgrade(): From d6e7cf875c3b95bba430904cd82b6119ecc26b70 Mon Sep 17 00:00:00 2001 From: DevPatils Date: Thu, 6 Aug 2026 20:35:50 +0530 Subject: [PATCH 3/3] fix: correct down_revision in migration file for document_metadata column --- .../b5ac48010165_add_missing_document_metadata_column_to_.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/migrations/versions/b5ac48010165_add_missing_document_metadata_column_to_.py b/migrations/versions/b5ac48010165_add_missing_document_metadata_column_to_.py index e55c6af60..a2d0a2ced 100644 --- a/migrations/versions/b5ac48010165_add_missing_document_metadata_column_to_.py +++ b/migrations/versions/b5ac48010165_add_missing_document_metadata_column_to_.py @@ -1,7 +1,7 @@ """add missing document_metadata column to node and cre Revision ID: b5ac48010165 -Revises: c7d8e9f0a1b2 +Revises: d4e5f6a7b8c9 Create Date: 2026-07-24 22:19:01.724833 """ @@ -13,7 +13,7 @@ # revision identifiers, used by Alembic. revision = "b5ac48010165" -down_revision = "c7d8e9f0a1b2" +down_revision = "d4e5f6a7b8c9" branch_labels = None depends_on = None