as part of sanity check want check if each column comes default
value or function. when create table can access information through table.columns
default
attribute.
at moment use "reflection" access/reconnect existing tables.
but when try access default
attribute of columns, after having using reflection, default
attribute set 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) 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] c in table_reloaded.columns: print c.name, repr(c.default)
output:
id none value columndefault(42) `reattaching using reflection` id none value none
default
python-level default. sqlalchemy reflection puts database column default in server_default
:
for c in table_reloaded.columns: print c.name, repr(c.server_default)
Comments
Post a Comment