Răsfoiți Sursa

数据库初始化是添加用户

zhangnaiwen 2 ani în urmă
părinte
comite
882efada3a
2 a modificat fișierele cu 28 adăugiri și 3 ștergeri
  1. 1 1
      scripts/init_db.sh
  2. 27 2
      src/manage.py

+ 1 - 1
scripts/init_db.sh

@@ -1,3 +1,3 @@
 #!/bin/bash
 
-docker exec -it operation_management_center  bash -c "export PYTHONPATH=/work/operation_management_center/src;export FLASK_APP=manage.py;export FLASK_ENV=development;flask dbinit"
+docker exec -it operation_management_center  bash -c "export PYTHONPATH=/work/operation_management_center/src;export FLASK_APP=manage.py;flask dbinit"

+ 27 - 2
src/manage.py

@@ -1,8 +1,13 @@
-from sqlalchemy import create_engine
+from urllib import parse
+
+from flask import current_app
+from sqlalchemy import create_engine, insert
+from sqlalchemy.orm import Session
 from sqlalchemy_utils import database_exists, create_database
 
 from app import Config
 from app.modle import Base
+from app.modle.users import User
 from app.webapp import application
 
 
@@ -14,7 +19,7 @@ def dbinit():
 
     config = Config()
 
-    uri = f'postgresql+psycopg2://{config.database.USER}:{config.database.PASSWORD}@{config.database.HOST}:{config.database.PORT}/{config.database.DB}'
+    uri = f'postgresql+psycopg2://{config.database.USER}:{parse.quote(config.database.PASSWORD)}@{config.database.HOST}:{config.database.PORT}/{config.database.DB}'
 
     engine = create_engine(uri)
 
@@ -26,6 +31,26 @@ def dbinit():
 
     print('initialize db ok ...\n')
 
+    with Session(current_app.engine) as session:
+        # 添加用户
+        session.execute(
+            insert(User).values(
+                user_name='user001',
+                password=User().generate_password('123456'),
+                # photograph=base64_data,
+                # name=name,
+                # phone=phone,
+                # email=email,
+                # company=company,
+                # department=department,
+                # role=role,
+                # permission=permission,
+                # on_job_status=on_job_status,
+                # duty=duty,
+                # nationality=nationality,
+            )
+        )
+        session.commit()
     print('Please Enter Ctrl+C to exit ...')