我已经增强了基类,因此它创建了我的项目中所有表中使用的列。但是,我想在数据库中创建表时控制列的顺序,以便该DWH_ID列是表中的第一列,而在基类中创建的所有其他列是表的最后一列。
假设我的项目定义如下:
from sqlalchemy import CHAR, Column, create_engine, DateTime, Integer, Text
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.sql import func
class Base:
__table_args__ = {'schema': 'some_schema'}
dwh_id = Column(Integer, primary_key=True, autoincrement=True, comment='Surrogate key')
dwh_date_inserted = Column(DateTime(timezone=False), default=func.now(), nullable=False, comment='Date and time when the record has been inserted')
dwh_date_updated = Column(DateTime(timezone=False), nullable=True, comment='Date and time when the record has been updated')
dwh_is_active = Column(CHAR(1), default='Y', nullable=False, comment="'Y' if the record is still available in the source, 'N' otherwise")
engine = create_engine(SOME_CONNECTION_STRING)
Base = declarative_base(cls=Base)
class Person(Base):
__tablename__ = 'persons'
first_name = Column(Text(), nullable=False, comment="First name of the person")
last_name = Column(Text(), nullable=False, comment="Last name of the person")
Base.metadata.create_all(engine, checkfirst=True)
engine.dispose()
Run Code Online (Sandbox Code Playgroud)
创建的表如下所示:
dwh_id | dwh_date_inserted | dwh_date_updated | dwh_is_active | first_name | last_name
---------------------------------------------------------------------------------------
Run Code Online (Sandbox Code Playgroud)
我想要这样的列顺序:
dwh_id | first_name | last_name | dwh_date_inserted | dwh_date_updated | dwh_is_active
---------------------------------------------------------------------------------------
Run Code Online (Sandbox Code Playgroud)
我在文档中找不到任何有用的内容。任何帮助表示赞赏。
| 归档时间: |
|
| 查看次数: |
520 次 |
| 最近记录: |