Преглед на файлове

fix: 修复main程序没有正确传递MySQL-Port给setup的问题

SongZihuan преди 3 години
родител
ревизия
e8692500eb
променени са 4 файла, в които са добавени 14 реда и са изтрити 3 реда
  1. 2 2
      conf/sql.py
  2. 5 0
      init.py
  3. 6 0
      main.py
  4. 1 1
      sql/base_db.py

+ 2 - 2
conf/sql.py

@@ -7,8 +7,8 @@ class ConfigDatabaseRelease:
     mysql_url = args.p_args['mysql_url']
     mysql_name = args.p_args['mysql_name']
     mysql_passwd = args.p_args['mysql_passwd']
-    mysql_port = args.p_args['mysql_port'] if (args.p_args['mysql_port'] is not None and
-                                               len(args.p_args['mysql_port']) > 0) else None
+    mysql_port = args.p_args['mysql_port'] if (len(args.p_args['mysql_port'] is None) or
+                                               (len(args.p_args['mysql_port']) > 0)) else None
 
 
 ConfigDatabase = ConfigDatabaseRelease

+ 5 - 0
init.py

@@ -67,6 +67,7 @@ check_import(["oss2", "viapi", "aliyunsdkcore", "aliyunsdkimagerecog"],
 
 import pymysql
 from conf import Config
+from conf import p_args
 
 mysql_url = Config.mysql_url
 mysql_name = Config.mysql_name
@@ -75,6 +76,10 @@ mysql_port = Config.mysql_port
 
 try:
     print(f"MySQL -h {mysql_url} -u {mysql_name} -P {mysql_port} -p{mysql_passwd}")
+    if mysql_port is None:
+        mysql_port = 0
+    else:
+        mysql_port = int(mysql_port)
     sql = pymysql.connect(user=mysql_name, password=mysql_passwd, host=mysql_url, port=mysql_port)
     cursor = sql.cursor()
 except pymysql.err.Error:

+ 6 - 0
main.py

@@ -34,10 +34,16 @@ def main():
     program_name = Config.program
     if program_name == "setup":  # setup程序不需要数据库链接等操作
         __main = os.path.dirname(os.path.abspath(__file__))
+
+        port = ""
+        if Config.mysql_port is not None:
+            port = f"--mysql_port= {Config.mysql_port}"
+
         res = os.system(f"{sys.executable} {os.path.join(__main, 'init.py')} "
                         f"--mysql_url={Config.mysql_url} "
                         f"--mysql_name={Config.mysql_name} "
                         f"--mysql_passwd={Config.mysql_passwd} "
+                        f"{port} "
                         f"--program=setup")
         if res != 0:
             print("初始化程序加载失败, 请检查配置是否正确而", file=sys.stderr)

+ 1 - 1
sql/base_db.py

@@ -28,7 +28,7 @@ class HGSDatabase(metaclass=abc.ABCMeta):
         if port is None:
             self._port = 0
         else:
-            self._port = int(port)
+            self._port = port
 
     @abc.abstractmethod
     def close(self):