feat(auto upgrade): add upgrade setting

This commit is contained in:
RockChinQ 2025-05-02 17:06:16 +08:00
parent dc75a10989
commit d8221e73a0

View File

@ -296,3 +296,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())