INNER CODE UNIT · Python
create_database
fastapi-practices/fba-slim · backend/cli.py:140
async def create_database(conn: AsyncConnection) -> bool:
"""创建或重建数据库"""
try:
terminate_sql = None
if DataBaseType.mysql == settings.DATABASE_TYPE:
check_sql = f"SHOW DATABASES LIKE '{settings.DATABASE_SCHEMA}'"
drop_sql = f'DROP DATABASE IF EXISTS `{settings.DATABASE_SCHEMA}`'
create_sql = (
f'CREATE DATABASE `{settings.DATABASE_SCHEMA}` CHARACTER SET {settings.DATABASE_CHARSET} '
f'COLLATE {settings.DATABASE_CHARSET}_unicode_ci'
)
else:
check_sql = f"SELECT 1 FROM pg_database WHERE datname = '{settings.DATABASE_SCHEMA}'"
drop_sql = f'DROP DATABASE IF EXISTS {settings.DATABASE_SCHEMA}'
create_sql = f'CREATE DATABASE {settings.DATABASE_SCHEMA}'
terminate_sql = (
f'SELECT pg_terminate_backend(pid) FROM pg_stat_activity '
f"WHERE datname = '{settings.DATABASE_SCHEMA}' AND pid <> pg_backend_pid()"