作为完整性检查的一部分,我想检查每列是否带有t(combn(sample(z), 3))
值或函数。创建表格后,我可以通过default
table.columns
属性访问此信息。
目前我使用“反射”访问/重新连接现有表。
但是当我尝试访问列的default
属性时,在使用反射后,default
属性设置为default
。
None
输出:
from sqlalchemy import Table, Column, Integer, MetaData, create_engine
engine = create_engine(postgresql+psycopg2://XXX)
metadata = MetaData(engine)
table_name ='test'
table = Table(table_name, metadata,
Column('id', Integer, primary_key=True),
Column('value', Integer, default=42))
table.create(engine)
for c in table.columns:
print c.name, repr(c.default)
print '`reattaching using reflection`'
metadata = MetaData(engine)
metadata.reflect()
table_reloaded = metadata.tables[table_name]
for c in table_reloaded.columns:
print c.name, repr(c.default)
答案 0 :(得分:1)
default
是Python级别的默认值。 SQLAlchemy反射将数据库列的默认值设置为server_default
:
for c in table_reloaded.columns:
print c.name, repr(c.server_default)