This commit is contained in:
jxxghp
2025-08-19 11:53:59 +08:00
parent 15833f94cf
commit 4bc24f3b00
16 changed files with 20 additions and 23 deletions

View File

@@ -2,23 +2,20 @@ import asyncio
from typing import Any, Generator, List, Optional, Self, Tuple, AsyncGenerator, Union
from sqlalchemy import NullPool, QueuePool, and_, create_engine, inspect, text, select, delete, Column, Integer, \
Sequence
Sequence, Identity
from sqlalchemy.ext.asyncio import create_async_engine, AsyncSession, async_sessionmaker
from sqlalchemy.orm import Session, as_declarative, declared_attr, scoped_session, sessionmaker
from app.core.config import settings
def get_id_column(table_name: str = None):
def get_id_column():
"""
根据数据库类型返回合适的ID列定义
"""
if settings.DB_TYPE.lower() == "postgresql":
# PostgreSQL使用显式序列,确保序列正确创建
if table_name:
return Column(Integer, Sequence(f'{table_name}_id_seq'), primary_key=True, index=True)
else:
return Column(Integer, Sequence('id_seq'), primary_key=True, index=True)
# PostgreSQL使用SERIAL类型让数据库自动处理序列
return Column(Integer, Identity(start=1, cycle=True), primary_key=True, index=True)
else:
# SQLite使用Sequence
return Column(Integer, Sequence('id'), primary_key=True, index=True)