
    Bգi                         d dl mZmZmZ d dlmZ d dlmZ  e            Z eej	        d          Z
 ee
ed          Z G d de          Zd	 Zd
efdZdS )    )AsyncSessionasync_sessionmakercreate_async_engine)DeclarativeBase)get_settingsF)echo)class_expire_on_commitc                       e Zd ZdZdS )Baseu   SQLAlchemy 声明式基类N)__name__
__module____qualname____doc__     2/root/workspace/TheGreatWar/server/app/database.pyr   r      s        $$Dr   r   c                     K   t                                           4 d{V } |                     t          j        j                   d{V  ddd          d{V  dS # 1 d{V swxY w Y   dS )uE   创建所有表（开发用，生产环境建议用 Alembic 迁移）N)enginebeginrun_syncr   metadata
create_all)conns    r   init_dbr      s      ||~~ 6 6 6 6 6 6 6mmDM45555555556 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6s   +A  
A*-A*returnc                   K   t                      4 d{V } 	 | W V  |                                  d{V  n)# t          $ r |                                  d{V   w xY w	 ddd          d{V  dS # 1 d{V swxY w Y   dS )u.   FastAPI 依赖注入：获取数据库 sessionN)async_sessioncommit	Exceptionrollback)sessions    r   get_dbr#      sG            '	MMMM.."""""""""" 	 	 	""$$$$$$$$$	 #                             s%   A69A6&AA66
B B N)sqlalchemy.ext.asyncior   r   r   sqlalchemy.ormr   
app.configr   settingsDATABASE_URLr   r   r   r   r#   r   r   r   <module>r)      s    X X X X X X X X X X * * * * * * # # # # # #<>>		X2	?	?	?""6,QVWWW	 	 	 	 	? 	 	 	
6 6 6l      r   