我声明了一些表示远程数据库的表.
我想检查我的表定义是否与我连接的远程数据库匹配.
def verify_db_tables(conn,Metadata): """checks that the tables declared in Metadata are actually in the db""" for table in Metadata.tables.values(): check = sqlalchemy.MetaData() check.reflect(conn,table.schema,True,(table.name,)) check = check.tables[table.key] for column in table.c: if column.name not in check.c: raise Exception("table %s does not contain column %s" % (table.key,column.name)) check_column = check.c[column.name] if check_column.type != column.type: raise Exception("column %s.%s is %s but expected %s" % (table.key,column.name,check_column.type,column.type))
我特别不关心表中是否有其他列,并且不关心是否有其他表.
Exception: column dx.mail_data.message_id is INTEGER but expected INTEGER
如何检查反射表中的列与我的定义类型相同?
解决方法
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。