优化初始化建表,添加启动脚本

This commit is contained in:
luoja 2025-03-28 15:32:36 +08:00
parent a4e5604559
commit a0efd049a7
6 changed files with 49 additions and 36 deletions

2
bin/start.bat Normal file
View File

@ -0,0 +1,2 @@
cd /d %~dp0/../src
waitress-serve --host=0.0.0.0 --port=8090 --url-scheme=http --trusted-proxy=* --trusted-proxy-headers=x-forwarded-for --threads=8 app:app.server

2
bin/start.sh Normal file
View File

@ -0,0 +1,2 @@
cd `dirname $0`/..
gunicorn --capture-output -w 4 -b 0.0.0.0:8090 app:app.server

View File

@ -16,4 +16,5 @@ otpauth==2.1.1
Flask-Compress==1.15
orjson==3.10.7
psutil==6.0.0
PyMySQL==1.1.1
PyMySQL==1.1.1
gunicorn==23.0.0

View File

@ -16,4 +16,5 @@ otpauth==2.1.1
Flask-Compress==1.15
orjson==3.10.7
psutil==6.0.0
PyMySQL==1.1.1
PyMySQL==1.1.1
waitress==3.0.2

View File

@ -39,39 +39,15 @@ def db():
# 判断是否存在SysUser表如不存在则初始化库
def initialize_database():
from .entity.table_user import SysUser, SysRoleAccessMeta, SysUserRole, SysGroupUser, SysRole, SysGroupRole, SysGroup
from .entity.table_announcement import SysAnnouncement
from .entity.table_oauth2 import OAuth2Client, OAuth2AuthorizationCode, OAuth2Token
from datetime import datetime
import hashlib
db_instance = db()
if not db_instance.table_exists('sys_user'):
from .entity.table_user import SysUser, SysRoleAccessMeta, SysUserRole, SysGroupUser, SysRole, SysGroupRole, SysGroup
from .entity.table_announcement import SysAnnouncement
from .entity.table_oauth2 import OAuth2Client, OAuth2AuthorizationCode, OAuth2Token
from datetime import datetime
import hashlib
db_instance.create_tables(
[
SysUser,
SysRoleAccessMeta,
SysUserRole,
SysGroupUser,
SysRole,
SysGroupRole,
SysGroup,
SysAnnouncement,
OAuth2Client,
OAuth2AuthorizationCode,
OAuth2Token
]
)
if not db_instance.table_exists(SysUser._meta.table_name):
db_instance.create_tables([SysUser])
with db_instance.atomic():
SysRole.create(
role_name='admin',
role_status=True,
update_datetime=datetime.now(),
update_by='admin',
create_datetime=datetime.now(),
create_by='admin',
role_remark='超级管理员角色',
)
SysUser.create(
user_name='admin',
user_full_name='超级管理员',
@ -87,7 +63,35 @@ def initialize_database():
user_remark='',
otp_secret='',
)
if not db_instance.table_exists(SysRole._meta.table_name):
db_instance.create_tables([SysRole])
with db_instance.atomic():
SysRole.create(
role_name='admin',
role_status=True,
update_datetime=datetime.now(),
update_by='admin',
create_datetime=datetime.now(),
create_by='admin',
role_remark='超级管理员角色',
)
if not db_instance.table_exists(SysUserRole._meta.table_name):
db_instance.create_tables([SysUserRole])
with db_instance.atomic():
SysUserRole.create(user_name='admin', role_name='admin')
if not db_instance.table_exists(SysRoleAccessMeta._meta.table_name):
db_instance.create_tables([SysRoleAccessMeta])
if not db_instance.table_exists(SysGroupUser._meta.table_name):
db_instance.create_tables([SysGroupUser])
if not db_instance.table_exists(SysGroup._meta.table_name):
db_instance.create_tables([SysGroup])
if not db_instance.table_exists(SysGroupRole._meta.table_name):
db_instance.create_tables([SysGroupRole])
if not db_instance.table_exists(SysAnnouncement._meta.table_name):
db_instance.create_tables([SysAnnouncement])
if not db_instance.table_exists(OAuth2Client._meta.table_name):
db_instance.create_tables([OAuth2Client])
if not db_instance.table_exists(OAuth2AuthorizationCode._meta.table_name):
db_instance.create_tables([OAuth2AuthorizationCode])
if not db_instance.table_exists(OAuth2Token._meta.table_name):
db_instance.create_tables([OAuth2Token])

View File

@ -18,6 +18,7 @@ class OAuth2Client(BaseModel):
scope = TextField(help_text='权限范围')
class Meta:
table_name = 'oauth2_client'
indexes = ((('client_id',), True),)
# grant阶段验证
@ -46,6 +47,7 @@ class OAuth2AuthorizationCode(BaseModel):
scope = TextField(help_text='权限范围')
class Meta:
table_name = 'oauth2_authorization_code'
indexes = ((('code',), True),)
def is_valid(self):
@ -68,6 +70,7 @@ class OAuth2Token(BaseModel):
scope = TextField(help_text='权限范围')
class Meta:
table_name = 'oauth2_token'
indexes = ((('token',), True),)
def is_valid(self):