初始化数据库脚本升级完成
parent
a1e7ef2dca
commit
0b415bc636
|
@ -14,35 +14,62 @@ class Command(BaseCommand):
|
||||||
项目初始化命令: python manage.py initialization
|
项目初始化命令: python manage.py initialization
|
||||||
"""
|
"""
|
||||||
|
|
||||||
def customSql(self, sql_list):
|
def customSql(self, sql_list, model_name, table_name):
|
||||||
"""
|
"""
|
||||||
批量执行sql
|
批量执行sql
|
||||||
:param sql_list:
|
:param sql_list:
|
||||||
|
:param table_name: 表名
|
||||||
:return:
|
:return:
|
||||||
"""
|
"""
|
||||||
with connection.cursor() as cursor:
|
with connection.cursor() as cursor:
|
||||||
|
num = 0
|
||||||
|
for ele in table_name.split(','):
|
||||||
|
cursor.execute("select count(*) from {}".format(ele))
|
||||||
|
result = cursor.fetchone()
|
||||||
|
num += result[0]
|
||||||
|
if num > 0:
|
||||||
|
while True:
|
||||||
|
inp = input(f'[{model_name}]模型已初始化完成,继续将清空[{table_name}]表中所有数据,是否继续初始化?【 Y/N 】')
|
||||||
|
if inp.upper() == 'N':
|
||||||
|
return False
|
||||||
|
elif inp.upper() == 'Y':
|
||||||
|
logger.info(f'正在清空[{table_name}]中数据...')
|
||||||
|
cursor.execute("SET foreign_key_checks = 0")
|
||||||
|
for ele in table_name.split(','):
|
||||||
|
cursor.execute("truncate table {};".format(ele))
|
||||||
|
cursor.execute("SET foreign_key_checks = 1")
|
||||||
|
connection.commit()
|
||||||
|
logger.info(f'清空[{table_name}]中数据{result[0]}条')
|
||||||
|
break
|
||||||
|
|
||||||
for sql in sql_list:
|
for sql in sql_list:
|
||||||
cursor.execute(sql)
|
cursor.execute(sql)
|
||||||
connection.commit()
|
connection.commit()
|
||||||
|
return True
|
||||||
|
|
||||||
def init(self, sql_filename, model_name):
|
def init(self, sql_filename, model_name, table_name):
|
||||||
"""
|
"""
|
||||||
初始化
|
初始化
|
||||||
:param sql_filename: sql存放位置
|
:param sql_filename: sql存放位置
|
||||||
:param model_name: 模块名
|
:param model_name: 模块名
|
||||||
|
:param table_name: 表名
|
||||||
:return:
|
:return:
|
||||||
"""
|
"""
|
||||||
logger.info(f'正在初始化[{model_name}]中...')
|
logger.info(f'正在初始化[{model_name}]中...')
|
||||||
self.customSql(getSql(sql_filename))
|
if self.customSql(getSql(sql_filename), model_name, table_name):
|
||||||
logger.info(f'[{model_name}]初始化完成!')
|
logger.info(f'[{model_name}]初始化完成!')
|
||||||
|
else:
|
||||||
|
logger.info(f'已取消[{table_name}]初始化')
|
||||||
|
|
||||||
def handle(self, *args, **options):
|
def handle(self, *args, **options):
|
||||||
self.init(os.path.join('system', 'system_dictdata.sql'), '字典管理')
|
self.init(os.path.join('system', 'system_dictdata.sql'), '字典管理', 'system_dictdata')
|
||||||
self.init(os.path.join('system', 'system_dictdetails.sql'), '字典详情')
|
self.init(os.path.join('system', 'system_dictdetails.sql'), '字典详情', 'system_dictdetails')
|
||||||
self.init(os.path.join('system', 'system_configsettings.sql'), '参数设置')
|
self.init(os.path.join('system', 'system_configsettings.sql'), '参数设置', 'system_configsettings')
|
||||||
self.init(os.path.join('permission', 'permission_post.sql'), '岗位管理')
|
self.init(os.path.join('permission', 'permission_post.sql'), '岗位管理', 'permission_post')
|
||||||
self.init(os.path.join('permission', 'permission_dept.sql'), '部门管理')
|
self.init(os.path.join('permission', 'permission_dept.sql'), '部门管理', 'permission_dept')
|
||||||
self.init(os.path.join('permission', 'permission_menu.sql'), '菜单管理')
|
self.init(os.path.join('permission', 'permission_menu.sql'), '菜单管理', 'permission_menu')
|
||||||
self.init(os.path.join('permission', 'permission_role.sql'), '角色管理')
|
self.init(os.path.join('permission', 'permission_role.sql'), '角色管理',
|
||||||
self.init(os.path.join('permission', 'permission_userprofile.sql'), '用户管理')
|
','.join(['permission_role', 'permission_role_dept', 'permission_role_menu']))
|
||||||
|
self.init(os.path.join('permission', 'permission_userprofile.sql'), '用户管理', ','.join(
|
||||||
|
['permission_userprofile_groups', 'permission_userprofile', 'permission_userprofile_role',
|
||||||
|
'permission_userprofile_post']))
|
||||||
|
|
|
@ -19,7 +19,7 @@ class Menu(CoreModel):
|
||||||
# ('OPTIONS', 'OPTIONS'),
|
# ('OPTIONS', 'OPTIONS'),
|
||||||
# ('TRACE', 'TRACE'),
|
# ('TRACE', 'TRACE'),
|
||||||
# )
|
# )
|
||||||
parentId = ForeignKey(to='Menu', on_delete=CASCADE, verbose_name="上级菜单", null=True, blank=True, )
|
parentId = ForeignKey(to='Menu', on_delete=CASCADE, verbose_name="上级菜单", null=True, blank=True, db_constraint=False)
|
||||||
menuType = CharField(max_length=8, verbose_name="菜单类型")
|
menuType = CharField(max_length=8, verbose_name="菜单类型")
|
||||||
icon = CharField(max_length=64, verbose_name="菜单图标", null=True, blank=True)
|
icon = CharField(max_length=64, verbose_name="菜单图标", null=True, blank=True)
|
||||||
name = CharField(max_length=64, verbose_name="菜单名称")
|
name = CharField(max_length=64, verbose_name="菜单名称")
|
||||||
|
|
|
@ -9,7 +9,7 @@ class DictDetails(CoreModel):
|
||||||
is_default = BooleanField(verbose_name="是否默认", default=False)
|
is_default = BooleanField(verbose_name="是否默认", default=False)
|
||||||
status = CharField(max_length=2, verbose_name="字典状态")
|
status = CharField(max_length=2, verbose_name="字典状态")
|
||||||
sort = CharField(max_length=256, verbose_name="字典排序")
|
sort = CharField(max_length=256, verbose_name="字典排序")
|
||||||
dict_data = ForeignKey(to='DictData', on_delete=CASCADE, verbose_name="关联字典")
|
dict_data = ForeignKey(to='DictData', on_delete=CASCADE, verbose_name="关联字典",db_constraint=False)
|
||||||
remark = CharField(max_length=256, verbose_name="备注", null=True, blank=True)
|
remark = CharField(max_length=256, verbose_name="备注", null=True, blank=True)
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
|
|
Loading…
Reference in New Issue