Вы можете настроить ваш двигатель, чтобы сбросить последовательность создания метаданных, используя следующее:
def metadata_dump(sql, *multiparams, **params):
# print or write to log or file etc
print(sql.compile(dialect=engine.dialect))
engine = create_engine(myDatabaseURL, strategy='mock', executor=metadata_dump)
metadata.create_all(engine)
. Одно из преимуществ этого подхода состоит в том, что перечисления и индексы включены в распечатку. Использование CreateTable
оставляет это.
Другим преимуществом является то, что порядок определений схемы правилен и (почти) применим как скрипт.