sql - Accessing column's `default` attribute after reflection -


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