From 77669dd5a5e43fc3b9cbcf62a8b8891317f4f7a3 Mon Sep 17 00:00:00 2001 From: vapao Date: Mon, 1 Jun 2020 11:33:03 +0800 Subject: [PATCH] =?UTF-8?q?F=20=E4=BF=AE=E5=A4=8Dupdate=E5=8D=87=E7=BA=A7?= =?UTF-8?q?=E6=9C=AA=E6=AD=A3=E5=B8=B8=E6=9B=B4=E6=96=B0=E8=A1=A8=E7=BB=93?= =?UTF-8?q?=E6=9E=84=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../account/management/commands/update.py | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/spug_api/apps/account/management/commands/update.py b/spug_api/apps/account/management/commands/update.py index f6558bc..9fd2f4a 100644 --- a/spug_api/apps/account/management/commands/update.py +++ b/spug_api/apps/account/management/commands/update.py @@ -2,7 +2,6 @@ # Copyright: (c) # Released under the MIT License. from django.core.management.base import BaseCommand -from django.core.management import call_command from django.conf import settings import subprocess import requests @@ -16,7 +15,7 @@ class Command(BaseCommand): res = requests.get('https://gitee.com/api/v5/repos/openspug/spug/releases/latest').json() version = res.get('tag_name') if not version: - return self.stderr.write(self.style.ERROR('获取新版本失败,排除网络问题后可至官方论坛反馈')) + return self.stderr.write(self.style.ERROR('获取新版本失败,排除网络问题后请附带输出内容至官方论坛反馈')) if version == settings.SPUG_VERSION: return self.stdout.write(self.style.SUCCESS('当前已是最新版本')) answer = input(f'发现新版本 {version} 是否更新[y|n]?') @@ -32,7 +31,7 @@ class Command(BaseCommand): ] task = subprocess.Popen(' && '.join(commands), shell=True) if task.wait() != 0: - return self.stderr.write(self.style.ERROR('获取更新失败,排除网络问题后可至官方论坛反馈。')) + return self.stderr.write(self.style.ERROR('获取更新失败,排除网络问题后请附带输出内容至官方论坛反馈。')) # update api commands = [ @@ -42,7 +41,7 @@ class Command(BaseCommand): ] task = subprocess.Popen(' && '.join(commands), shell=True) if task.wait() != 0: - return self.stderr.write(self.style.ERROR('获取更新失败,排除网络问题后可至官方论坛反馈。')) + return self.stderr.write(self.style.ERROR('获取更新失败,排除网络问题后请附带输出内容至官方论坛反馈。')) # update dep commands = [ @@ -51,12 +50,18 @@ class Command(BaseCommand): ] task = subprocess.Popen(' && '.join(commands), shell=True) if task.wait() != 0: - return self.stderr.write(self.style.ERROR('更新依赖包失败,排除网络问题后可至官方论坛反馈。')) + return self.stderr.write(self.style.ERROR('更新依赖包失败,排除网络问题后请附带输出内容至官方论坛反馈。')) # update db apps = [x.split('.')[-1] for x in settings.INSTALLED_APPS if x.startswith('apps.')] - call_command('makemigrations', *apps) - call_command('migrate') + commands = [ + f'cd {settings.BASE_DIR}', + f'./manage.py makemigrations ' + ' '.join(apps), + f'./manage.py migrate' + ] + task = subprocess.Popen(' && '.join(commands), shell=True) + if task.wait() != 0: + return self.stderr.write(self.style.ERROR('更新表结构失败,请附带输出内容至官方论坛反馈。')) self.stdout.write(self.style.SUCCESS('''升级成功,请自行重启服务,如果通过官方文档安装一般重启命令为 Docker: docker restart $CONTAINER_ID