增加jsd清理机制,检测升级前自动清空本地jsd文件

This commit is contained in:
晚风拂柳颜 2023-07-03 11:07:46 +08:00
parent 0f7f9bda8e
commit 413a30b324
3 changed files with 15 additions and 3 deletions

View File

@ -1 +1 @@
3.9.46beta1
3.9.46beta2

View File

@ -234,7 +234,7 @@
});
$('#clear_drop').click(function () {
if(confirm('若js目录存在同名的jsd文件则视为该源为废弃源。执行此功能将清理与jsd文件同名的js文件。执行此功能前请确保项目的jsd文件跟仓库一致防止误删。推荐进容器 rm -rf js/*.jsd 后强制升级一次再使用此功能。立即执行则确认否则取消执行')){
if(confirm('若js目录存在同名的jsd文件则视为该源为废弃源。执行此功能将清理与jsd文件同名的js文件。执行此功能前请确保项目的jsd文件跟仓库一致防止误删。推荐进容器 rm -rf js/*.jsd 后强制升级一次再使用此功能,后续升级时会自动清空旧版jsd文件。立即执行则确认否则取消执行')){
$.get("/admin/clear_drop", function (data, status) {
console.log(data);
if (data.code === 200) {

View File

@ -156,13 +156,25 @@ def copy_to_update():
# print(f'升级失败,找不到目录{dr_path}')
logger.info(f'升级失败,找不到目录{dr_path}')
return False
js_path = os.path.join(base_path, 'js')
files = os.listdir(js_path)
jsd_list = list(filter(lambda x: str(x).endswith('.jsd'), files))
try:
for jsd in jsd_list:
os.remove(jsd)
logger.info(f'升级过程中共计清理jsd文件数:{len(jsd_list)}')
except Exception as e:
logger.info(f'升级过程中清理jsd文件发生错误:{e}')
# 千万不能覆盖superbase
paths = ['js','models','controllers','libs','static','templates','utils','txt','jiexi','py','whl','doc']
exclude_files = ['txt/pycms0.json','txt/pycms1.json','txt/pycms2.json','base/rules.db']
for path in paths:
force_copy_files(os.path.join(dr_path, path),os.path.join(base_path, path),exclude_files)
force_copy_files(os.path.join(dr_path, path), os.path.join(base_path, path),exclude_files)
try:
shutil.copy(os.path.join(dr_path, 'app.py'), os.path.join(base_path, 'app.py')) # 复制文件
shutil.copy(os.path.join(dr_path, 'requirements.txt'), os.path.join(base_path, 'requirements.txt')) # 复制文件
except Exception as e:
logger.info(f'更新app.py发生错误:{e}')
logger.info(f'升级程序执行完毕,全部文件已拷贝覆盖')