Files
company-ai-platform/app/tools/init_db.py
JiuContinent d7db84571d ```
feat: 添加飞书用户模块和订阅功能支持

- 新增feishu_users模块用于处理飞书用户身份验证和权限管理
- 新增subscriptions模块用于处理订阅相关功能
- 新增personalization模块用于个性化服务
- 在alembic迁移配置中注册新的模型模块
- 在API路由器中添加feishu_users和subscriptions路由
- 实现事件调度服务的改进,包括错误处理和状态更新优化
- 添加飞书命令处理的权限检查机制
- 实现飞书应用票据事件处理
- 改进审计日志记录功能
```
2026-07-27 08:02:17 +08:00

109 lines
2.4 KiB
Python

from pathlib import Path
from alembic import command
from alembic.config import Config
from app.modules.ai_memory.models import AIMemoryEntry
from app.modules.audit.models import AuditLog
from app.modules.business.models import (
AttendanceRecord,
Expense,
Employee,
FundAccount,
LegacySyncRun,
MarketAnnouncement,
MarketDailyQuote,
MarketFinancialMetric,
MarketInstrument,
MarketMacroIndicator,
MarketWatchlist,
PerformanceMetric,
Policy,
Procurement,
Project,
ProjectCashFlow,
ProjectContract,
ProjectMember,
ProjectMilestone,
ReportPushRun,
RiskEvent,
RiskEventAction,
Standard,
Supplier,
SourceSyncCursor,
WorkReport,
WorkTask,
)
from app.modules.feishu.models import FeishuEventReceipt
from app.modules.feishu_users.models import (
FeishuAdminBootstrapTombstone,
FeishuUser,
)
from app.modules.events.models import DomainEvent
from app.modules.observability.models import SystemHeartbeat
from app.modules.personalization.models import (
AIConversation,
AIConversationMessage,
PersonalDataErasureRequest,
UserPreference,
)
from app.modules.subscriptions.models import PushDelivery, PushSubscription
from app.modules.workflows.models import WorkflowAction, WorkflowInstance
_MODELS = [
AuditLog,
Employee,
FeishuEventReceipt,
FeishuUser,
FeishuAdminBootstrapTombstone,
Project,
ProjectCashFlow,
ProjectContract,
ProjectMember,
ProjectMilestone,
WorkTask,
Procurement,
Expense,
FundAccount,
Policy,
Standard,
PerformanceMetric,
Supplier,
AttendanceRecord,
WorkReport,
RiskEvent,
RiskEventAction,
LegacySyncRun,
MarketAnnouncement,
MarketInstrument,
MarketDailyQuote,
MarketFinancialMetric,
MarketMacroIndicator,
MarketWatchlist,
ReportPushRun,
DomainEvent,
WorkflowInstance,
WorkflowAction,
AIMemoryEntry,
UserPreference,
AIConversation,
AIConversationMessage,
PersonalDataErasureRequest,
PushSubscription,
PushDelivery,
SystemHeartbeat,
SourceSyncCursor,
]
def main() -> None:
project_root = Path(__file__).resolve().parents[2]
config = Config(str(project_root / "alembic.ini"))
config.set_main_option("script_location", str(project_root / "alembic"))
command.upgrade(config, "head")
print("Database schema migrated to Alembic head.")
if __name__ == "__main__":
main()