M3a:息壤三级记忆域——归真触发提取管线/白名单明忆/重忆确认/正影版本链/删除墓碑/双通道召回注入,退役旧记忆-抽取-反思-大周天-演化管线(迁移 004,验收 7 用例)
This commit is contained in:
1 parent
2a640a901b
commit
9c98c2f85e
69 files changed
+1193
-6033
No files matched your search
@@ -0,0 +1,102 @@
|
||||
"""息壤记忆域:三级记忆表重建与触发/实录,退役旧记忆表
|
||||
|
||||
Revision ID: 004
|
||||
Revises: 003
|
||||
Create Date: 2026-08-22
|
||||
|
||||
旧 memories/memory_links 随旧记忆管线退役整体删除(开发数据丢弃语义,data-model §9),
|
||||
新表按 app/models/xirang.py 重建。
|
||||
"""
|
||||
from typing import Sequence, Union
|
||||
|
||||
from alembic import op
|
||||
import sqlalchemy as sa
|
||||
|
||||
|
||||
revision: str = '004'
|
||||
down_revision: Union[str, Sequence[str], None] = '003'
|
||||
branch_labels: Union[str, Sequence[str], None] = None
|
||||
depends_on: Union[str, Sequence[str], None] = None
|
||||
|
||||
|
||||
def upgrade() -> None:
|
||||
op.drop_table('memory_links')
|
||||
op.drop_table('memories')
|
||||
op.create_table('memories',
|
||||
sa.Column('id', sa.String(length=80), nullable=False),
|
||||
sa.Column('character_id', sa.String(length=80), nullable=False),
|
||||
sa.Column('tier', sa.String(length=20), nullable=False),
|
||||
sa.Column('type', sa.String(length=40), nullable=False),
|
||||
sa.Column('status', sa.String(length=20), nullable=False),
|
||||
sa.Column('source', sa.String(length=20), nullable=False),
|
||||
sa.Column('content', sa.Text(), nullable=False),
|
||||
sa.Column('source_refs_json', sa.Text(), nullable=False),
|
||||
sa.Column('sensitivity', sa.String(length=20), nullable=False),
|
||||
sa.Column('priority', sa.Integer(), nullable=False),
|
||||
sa.Column('confidence', sa.Float(), nullable=False),
|
||||
sa.Column('vitality', sa.Float(), nullable=False),
|
||||
sa.Column('valid_until', sa.DateTime(timezone=True), nullable=True),
|
||||
sa.Column('realm', sa.String(length=40), nullable=False),
|
||||
sa.Column('prev_version_id', sa.String(length=80), nullable=True),
|
||||
sa.Column('recall_count', sa.Integer(), nullable=False),
|
||||
sa.Column('last_recalled_at', sa.DateTime(timezone=True), nullable=True),
|
||||
sa.Column('created_at', sa.DateTime(timezone=True), nullable=False),
|
||||
sa.Column('updated_at', sa.DateTime(timezone=True), nullable=False),
|
||||
sa.PrimaryKeyConstraint('id')
|
||||
)
|
||||
op.create_index(op.f('ix_memories_character_id'), 'memories', ['character_id'], unique=False)
|
||||
op.create_index(op.f('ix_memories_tier'), 'memories', ['tier'], unique=False)
|
||||
op.create_index(op.f('ix_memories_type'), 'memories', ['type'], unique=False)
|
||||
op.create_index(op.f('ix_memories_status'), 'memories', ['status'], unique=False)
|
||||
op.create_index(op.f('ix_memories_prev_version_id'), 'memories', ['prev_version_id'], unique=False)
|
||||
op.create_table('memory_triggers',
|
||||
sa.Column('id', sa.String(length=80), nullable=False),
|
||||
sa.Column('memory_id', sa.String(length=80), nullable=False),
|
||||
sa.Column('kind', sa.String(length=20), nullable=False),
|
||||
sa.Column('pattern', sa.String(length=200), nullable=False),
|
||||
sa.Column('created_at', sa.DateTime(timezone=True), nullable=False),
|
||||
sa.ForeignKeyConstraint(['memory_id'], ['memories.id'], ),
|
||||
sa.PrimaryKeyConstraint('id')
|
||||
)
|
||||
op.create_table('factual_records',
|
||||
sa.Column('id', sa.String(length=80), nullable=False),
|
||||
sa.Column('character_id', sa.String(length=80), nullable=False),
|
||||
sa.Column('canonization_id', sa.String(length=80), nullable=False),
|
||||
sa.Column('evidence_json', sa.Text(), nullable=False),
|
||||
sa.Column('summary', sa.Text(), nullable=False),
|
||||
sa.Column('occurred_at', sa.DateTime(timezone=True), nullable=False),
|
||||
sa.PrimaryKeyConstraint('id')
|
||||
)
|
||||
|
||||
|
||||
def downgrade() -> None:
|
||||
op.drop_table('factual_records')
|
||||
op.drop_table('memory_triggers')
|
||||
op.drop_table('memories')
|
||||
op.create_table('memories',
|
||||
sa.Column('id', sa.String(length=80), nullable=False),
|
||||
sa.Column('character_id', sa.String(length=80), nullable=False),
|
||||
sa.Column('title', sa.String(length=200), nullable=True),
|
||||
sa.Column('content', sa.Text(), nullable=False),
|
||||
sa.Column('source', sa.String(length=40), nullable=False),
|
||||
sa.Column('importance', sa.Float(), nullable=False),
|
||||
sa.Column('sensitivity', sa.String(length=20), nullable=False),
|
||||
sa.Column('temporal_context_json', sa.Text(), nullable=False),
|
||||
sa.Column('evidence_ids_json', sa.Text(), nullable=False),
|
||||
sa.Column('expires_at', sa.DateTime(timezone=True), nullable=True),
|
||||
sa.Column('deleted_at', sa.DateTime(timezone=True), nullable=True),
|
||||
sa.Column('created_at', sa.DateTime(timezone=True), nullable=False),
|
||||
sa.Column('updated_at', sa.DateTime(timezone=True), nullable=False),
|
||||
sa.ForeignKeyConstraint(['character_id'], ['characters.id'], ),
|
||||
sa.PrimaryKeyConstraint('id')
|
||||
)
|
||||
op.create_table('memory_links',
|
||||
sa.Column('id', sa.String(length=80), nullable=False),
|
||||
sa.Column('from_memory_id', sa.String(length=80), nullable=False),
|
||||
sa.Column('to_memory_id', sa.String(length=80), nullable=False),
|
||||
sa.Column('relation', sa.String(length=40), nullable=False),
|
||||
sa.Column('created_at', sa.DateTime(timezone=True), nullable=False),
|
||||
sa.ForeignKeyConstraint(['from_memory_id'], ['memories.id'], ),
|
||||
sa.ForeignKeyConstraint(['to_memory_id'], ['memories.id'], ),
|
||||
sa.PrimaryKeyConstraint('id')
|
||||
)
|
||||
Reference in new issue
Block a user