Я хочу программно сгенерировать операторы ALTER TABLE
в SQL Alchemy, чтобы добавить новый столбец в таблицу. Столбец, который нужно добавить, должен взять свое определение из существующего сопоставленного класса.SQL Алхимия и генерация операторов ALTER TABLE
Итак, учитывая экземпляр SQL Alchemy Column
, могу ли я создать определения (-ы) схемы SQL, которые мне нужны для ALTER TABLE ... ADD COLUMN ...
и CREATE INDEX ...
?
Я играл в приглашении Python и был в состоянии видеть читаемое описание данных я после:
>>> DBChain.__table__.c.rName
Column('rName', String(length=40, convert_unicode=False, assert_unicode=None, unicode_error=None, _warn_on_bytestring=False), table=<Chain>)
Когда я звоню engine.create_all()
журнал отладка включает операторы SQL I» м надеются генерировать:
CREATE TABLE "Chain" (
...
"rName" VARCHAR(40),
...
)
CREATE INDEX "ix_Chain_rName" ON "Chain" ("rName")
Я слышал sqlalchemy-migrate, но это, кажется, будет построено вокруг статических изменений, и я ищу, чтобы динамически генерировать ЩЭ ма-изменения.
(Я не заинтересован в защите этого проекта, я просто смотрю на диалект переносного способа добавить столбец в существующей таблицу.)