65 lines
1.4 KiB
Python
65 lines
1.4 KiB
Python
# -*- coding: utf-8 -*-
|
|
"""
|
|
@File : version_service.py
|
|
@Date : 2022-11-02
|
|
@Author : Peng Shiyu
|
|
"""
|
|
from __future__ import print_function, unicode_literals, absolute_import, division
|
|
|
|
from peewee import IntegrityError
|
|
|
|
from domain_admin.enums.version_enum import VersionEnum
|
|
from domain_admin.log import logger
|
|
from domain_admin.migrate import migrate
|
|
|
|
from domain_admin.model.version_model import VersionModel
|
|
from domain_admin.version import VERSION
|
|
|
|
|
|
def get_local_version():
|
|
"""
|
|
获取本地最新版本号
|
|
:return:
|
|
"""
|
|
row = VersionModel.select().order_by(
|
|
VersionModel.create_time.desc()
|
|
).get_or_none()
|
|
|
|
if row:
|
|
return row.version
|
|
|
|
|
|
def get_current_version():
|
|
"""
|
|
获取当前版本号
|
|
:return:
|
|
"""
|
|
return VERSION
|
|
|
|
|
|
def update_version():
|
|
"""
|
|
版本升级
|
|
:return:
|
|
"""
|
|
local_version = get_local_version()
|
|
current_version = get_current_version()
|
|
logger.info("local_version: %s => current_version: %s", local_version, current_version)
|
|
|
|
# 版本号校验
|
|
if local_version == current_version:
|
|
return
|
|
|
|
# 版本不一致才需要升级
|
|
if local_version is not None:
|
|
migrate.execute_migrate(local_version)
|
|
|
|
# 更新版本号
|
|
# fix: 多实例同时启动版本号写入失败问题
|
|
try:
|
|
VersionModel.create(
|
|
version=current_version
|
|
)
|
|
except IntegrityError:
|
|
pass
|