fix: widen knowledge source effective date
This commit is contained in:
@@ -19,7 +19,7 @@ class KnowledgeBaseDocument(Base):
|
||||
status: Mapped[str] = mapped_column(String(32), default="indexed")
|
||||
source_type: Mapped[Optional[str]] = mapped_column(String(64), nullable=True, index=True)
|
||||
authority: Mapped[Optional[str]] = mapped_column(String(255), nullable=True)
|
||||
effective_date: Mapped[Optional[str]] = mapped_column(String(32), nullable=True)
|
||||
effective_date: Mapped[Optional[str]] = mapped_column(String(128), nullable=True)
|
||||
region: Mapped[Optional[str]] = mapped_column(String(120), nullable=True, index=True)
|
||||
tags_json: Mapped[Optional[list[str]]] = mapped_column(JSON, nullable=True)
|
||||
content_excerpt: Mapped[Optional[str]] = mapped_column(Text, nullable=True)
|
||||
|
||||
@@ -0,0 +1,45 @@
|
||||
"""widen knowledge document effective date metadata"""
|
||||
|
||||
from alembic import op
|
||||
import sqlalchemy as sa
|
||||
|
||||
|
||||
revision = "20260516_0021"
|
||||
down_revision = "20260513_0020"
|
||||
branch_labels = None
|
||||
depends_on = None
|
||||
|
||||
|
||||
def _table_names(inspector: sa.Inspector) -> set[str]:
|
||||
return set(inspector.get_table_names())
|
||||
|
||||
|
||||
def _column_by_name(inspector: sa.Inspector, table_name: str, column_name: str):
|
||||
for column in inspector.get_columns(table_name):
|
||||
if column["name"] == column_name:
|
||||
return column
|
||||
return None
|
||||
|
||||
|
||||
def upgrade() -> None:
|
||||
bind = op.get_bind()
|
||||
inspector = sa.inspect(bind)
|
||||
if "knowledge_base_documents" not in _table_names(inspector):
|
||||
return
|
||||
column = _column_by_name(inspector, "knowledge_base_documents", "effective_date")
|
||||
if column is None:
|
||||
return
|
||||
current_length = getattr(column["type"], "length", None)
|
||||
if current_length is None or current_length < 128:
|
||||
op.alter_column(
|
||||
"knowledge_base_documents",
|
||||
"effective_date",
|
||||
existing_type=sa.String(length=current_length or 32),
|
||||
type_=sa.String(length=128),
|
||||
existing_nullable=True,
|
||||
)
|
||||
|
||||
|
||||
def downgrade() -> None:
|
||||
# Keep the wider column on downgrade so already absorbed multi-source metadata is not truncated.
|
||||
return
|
||||
Reference in New Issue
Block a user