From fccb00c28169047ec9ff8a10110af53a937d8084 Mon Sep 17 00:00:00 2001 From: RockChinQ Date: Fri, 2 May 2025 17:06:16 +0800 Subject: [PATCH] feat(auto upgrade): add upgrade setting --- api/models/account.py | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/api/models/account.py b/api/models/account.py index 7ffeefa980..61881e9bad 100644 --- a/api/models/account.py +++ b/api/models/account.py @@ -299,3 +299,29 @@ class TenantPluginPermission(Base): db.String(16), nullable=False, server_default="everyone" ) debug_permission: Mapped[DebugPermission] = mapped_column(db.String(16), nullable=False, server_default="noone") + +class TenantPluginAutoUpgradeStrategy(Base): + class StrategyOption(enum.StrEnum): + DISABLED = "disabled" + FIX_ONLY = "fix_only" + LATEST = "latest" + + class UpgradeMode(enum.StrEnum): + PARTIAL = "partial" + EXCLUDE = "exclude" + + __tablename__ = "tenant_plugin_auto_upgrade_strategies" + __table_args__ = ( + db.PrimaryKeyConstraint("id", name="tenant_plugin_auto_upgrade_strategy_pkey"), + db.UniqueConstraint("tenant_id", name="unique_tenant_plugin_auto_upgrade_strategy"), + ) + + id: Mapped[str] = mapped_column(StringUUID, server_default=db.text("uuid_generate_v4()")) + tenant_id: Mapped[str] = mapped_column(StringUUID, nullable=False) + strategy_option: Mapped[StrategyOption] = mapped_column(db.String(16), nullable=False) + upgrade_time_of_day: Mapped[int] = mapped_column(db.Integer, nullable=False) + upgrade_mode: Mapped[UpgradeMode] = mapped_column(db.String(16), nullable=False) + exclude_plugins: Mapped[list[str]] = mapped_column(db.ARRAY(db.String(255)), nullable=False) + include_plugins: Mapped[list[str]] = mapped_column(db.ARRAY(db.String(255)), nullable=False) + created_at = db.Column(db.DateTime, nullable=False, server_default=func.current_timestamp()) + updated_at = db.Column(db.DateTime, nullable=False, server_default=func.current_timestamp())