8323bf68d2
新建 backend/packages/harness/deerflow/persistence/workspace/{__init__.py, model.py}
+ 在 persistence.models.__init__ 注册 WorkspaceRow 让 Base.metadata.create_all
能自动建表。
WorkspaceRow schema(来自 workspace-schema-design §2.1 锁定版):
- id String(36) PK(UUID v4 字符串,与 users.id 对齐)
- name String(64) NOT NULL(显示名)
- slug String(32) NOT NULL UNIQUE(URL 标识,正则 ^[a-z0-9](-?[a-z0-9])*$)
- status String(16) default 'active'(active/suspended/deleted)
- owner_id String(36) FK users.id ON DELETE RESTRICT(删 owner 时阻拦,
必须先转让所有权)
- created_at / updated_at DateTime(tz=True)
每列 + 表都带中文 comment(沿用 commit 9ff79055 的 convention)。
Stage 0 PR3 T3.3。
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
26 lines
1.0 KiB
Python
26 lines
1.0 KiB
Python
"""ORM model registration entry point.
|
|
|
|
Importing this module ensures all ORM models are registered with
|
|
``Base.metadata`` so Alembic autogenerate detects every table.
|
|
|
|
The actual ORM classes have moved to entity-specific subpackages:
|
|
- ``deerflow.persistence.thread_meta``
|
|
- ``deerflow.persistence.run``
|
|
- ``deerflow.persistence.feedback``
|
|
- ``deerflow.persistence.user``
|
|
- ``deerflow.persistence.workspace`` (Stage 0 PR3)
|
|
|
|
``RunEventRow`` remains in ``deerflow.persistence.models.run_event`` because
|
|
its storage implementation lives in ``deerflow.runtime.events.store.db`` and
|
|
there is no matching entity directory.
|
|
"""
|
|
|
|
from deerflow.persistence.feedback.model import FeedbackRow
|
|
from deerflow.persistence.models.run_event import RunEventRow
|
|
from deerflow.persistence.run.model import RunRow
|
|
from deerflow.persistence.thread_meta.model import ThreadMetaRow
|
|
from deerflow.persistence.user.model import UserRow
|
|
from deerflow.persistence.workspace.model import WorkspaceRow
|
|
|
|
__all__ = ["FeedbackRow", "RunEventRow", "RunRow", "ThreadMetaRow", "UserRow", "WorkspaceRow"]
|