Je souhaite générer par programme des instructions ALTER TABLE
dans SQL Alchemy pour ajouter une nouvelle colonne à une table. La colonne à ajouter doit prendre sa définition à partir d'une classe mappée existante. Par conséquent, étant donné une instance SQL Alchemy Column
, puis-je générer les définitions de schéma SQL dont j'ai besoin pour ALTER TABLE ... ADD COLUMN ...
et CREATE INDEX ...
?SQL Alchemy et génération d'instructions ALTER TABLE
J'ai joué à l'invite de Python et été en mesure de voir une description lisible par l'homme des données que je suis après:
>>> DBChain.__table__.c.rName
Column('rName', String(length=40, convert_unicode=False, assert_unicode=None, unicode_error=None, _warn_on_bytestring=False), table=<Chain>)
Quand j'appelle engine.create_all()
le journal de débogage comprend les instructions SQL I » m cherche à générer:
CREATE TABLE "Chain" (
...
"rName" VARCHAR(40),
...
)
CREATE INDEX "ix_Chain_rName" ON "Chain" ("rName")
Je l'ai entendu parler de sqlalchemy-migrate, mais qui semble être construit autour des changements statiques et je suis à la recherche de générer dynamiquement sche ma-changements.
(je ne suis pas intéressé à défendre cette conception, je suis à la recherche d'un moyen portable dialecte d'ajouter une colonne à une table existante.)