增加数据库迁移命令和数据库初始化命令,分离schemas
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
from applications.common.utils.validate import xss_escape
|
||||
from applications.extensions import db
|
||||
from applications.models import Dept, DeptSchema
|
||||
from applications.models import Dept
|
||||
from applications.schemas import DeptSchema
|
||||
from applications.models import User
|
||||
from applications.common.curd import model_to_dicts
|
||||
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
from applications.common.utils.validate import xss_escape
|
||||
from applications.extensions import db
|
||||
from applications.models import DictType, DictData, DictTypeSchema, DictDataSchema
|
||||
from applications.models import DictType, DictData
|
||||
from applications.schemas import DictTypeSchema, DictDataSchema
|
||||
from applications.common.curd import model_to_dicts
|
||||
|
||||
|
||||
|
||||
@@ -4,7 +4,8 @@ from sqlalchemy import desc
|
||||
|
||||
from applications.common.utils.upload import photos
|
||||
from applications.extensions import db
|
||||
from applications.models import Photo, PhotoSchema
|
||||
from applications.models import Photo
|
||||
from applications.schemas import PhotoSchema
|
||||
from applications.common.curd import model_to_dicts
|
||||
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@ from flask import session, make_response, current_app
|
||||
from flask_login import current_user
|
||||
|
||||
from applications.common.utils.gen_captcha import gen_captcha
|
||||
from applications.models.admin_power import PowerSchema
|
||||
from applications.schemas import PowerSchema
|
||||
|
||||
|
||||
# 授权路由存入session
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
from applications.common.utils.validate import xss_escape
|
||||
from applications.extensions import db
|
||||
from applications.models.admin_power import Power, PowerSchema2
|
||||
from applications.models.admin_power import Power
|
||||
from applications.schemas import PowerSchema2
|
||||
from applications.models import Role
|
||||
from applications.common.curd import model_to_dicts
|
||||
|
||||
|
||||
@@ -1,9 +1,10 @@
|
||||
from sqlalchemy import and_
|
||||
|
||||
from applications.common.utils.validate import xss_escape
|
||||
from applications.extensions import db
|
||||
from applications.models import Role, RoleSchema
|
||||
from applications.models.admin_power import Power, PowerSchema2
|
||||
from applications.models import Role
|
||||
from applications.schemas import RoleSchema
|
||||
from applications.models.admin_power import Power
|
||||
from applications.schemas import PowerSchema2
|
||||
from applications.models import User
|
||||
|
||||
# 获取角色对象
|
||||
|
||||
@@ -2,7 +2,8 @@ from flask import jsonify
|
||||
from flask_login import current_user
|
||||
from sqlalchemy import and_, desc
|
||||
from applications.extensions import db
|
||||
from applications.models import User, UserSchema
|
||||
from applications.models import User
|
||||
from applications.schemas import UserSchema
|
||||
from applications.models import Role
|
||||
from applications.models import AdminLog
|
||||
|
||||
|
||||
@@ -3,12 +3,12 @@ from flask import jsonify
|
||||
|
||||
def success_api(msg: str = "成功"):
|
||||
""" 成功响应 默认值”成功“ """
|
||||
return jsonify(success=True, message=msg)
|
||||
return jsonify(success=True, msg=msg)
|
||||
|
||||
|
||||
def fail_api(msg: str = "失败"):
|
||||
""" 失败响应 默认值“失败” """
|
||||
return jsonify(success=False, message=msg)
|
||||
return jsonify(success=False, msg=msg)
|
||||
|
||||
|
||||
def table_api(msg: str = "", count=0, data=None, limit=10):
|
||||
|
||||
@@ -0,0 +1,64 @@
|
||||
from dotenv import dotenv_values
|
||||
import sqlparse
|
||||
import pymysql
|
||||
config = dotenv_values('.env')
|
||||
# MySql配置信息
|
||||
HOST = config.get('MYSQL_HOST') or '127.0.0.1'
|
||||
PORT = config.get('MYSQL_PORT') or 3306
|
||||
DATABASE = config.get('MYSQL_DATABASE') or 'PearAdminFlask'
|
||||
USERNAME = config.get('MYSQL_USERNAME') or 'root'
|
||||
PASSWORD = config.get('MYSQL_PASSWORD') or '123456'
|
||||
|
||||
|
||||
def is_exist_database():
|
||||
db = pymysql.connect(host=HOST, port=int(PORT), user=USERNAME, password=PASSWORD, charset='utf8mb4')
|
||||
cursor1 = db.cursor()
|
||||
sql = "select * from information_schema.SCHEMATA WHERE SCHEMA_NAME = '%s' ; " % DATABASE
|
||||
res = cursor1.execute(sql)
|
||||
db.close()
|
||||
return res
|
||||
|
||||
|
||||
def init_database():
|
||||
db = pymysql.connect(host=HOST, port=int(PORT), user=USERNAME, password=PASSWORD, charset='utf8mb4')
|
||||
cursor1 = db.cursor()
|
||||
sql = "CREATE DATABASE IF NOT EXISTS %s" % DATABASE
|
||||
res = cursor1.execute(sql)
|
||||
db.close()
|
||||
return res
|
||||
|
||||
|
||||
def execute_fromfile(filename):
|
||||
db = pymysql.connect(host=HOST, port=int(PORT), user=USERNAME, password=PASSWORD, database=DATABASE,
|
||||
charset='utf8mb4')
|
||||
fd = open(filename, 'r', encoding='utf-8')
|
||||
cursor = db.cursor()
|
||||
sqlfile = fd.read()
|
||||
sqlfile = sqlparse.format(sqlfile, strip_comments=True).strip()
|
||||
|
||||
sqlcommamds = sqlfile.split(';')
|
||||
|
||||
for command in sqlcommamds:
|
||||
try:
|
||||
cursor.execute(command)
|
||||
db.commit()
|
||||
|
||||
except Exception as msg:
|
||||
|
||||
db.rollback()
|
||||
db.close()
|
||||
|
||||
|
||||
def init_db():
|
||||
if is_exist_database():
|
||||
print('数据库已经存在,为防止误初始化,请收动删除 %s 数据库' % str(DATABASE))
|
||||
return
|
||||
if init_database():
|
||||
print('数据库%s创建成功' % str(DATABASE))
|
||||
execute_fromfile(BASE_DIR + '../../../test/pear.sql')
|
||||
print('表创建成功')
|
||||
print('欢迎使用pear-admin-flask,请使用 flask run 命令启动程序')
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
init_db()
|
||||
Reference in New Issue
Block a user