我将要编写一个python脚本来帮助我在同一个应用程序的不同版本之间迁移数据。在
在我开始之前,我想知道是否有一个脚本或模块可以做类似的事情,我可以使用,或者至少作为我自己的一个起点。其思想是在特定表之间区分数据,然后将差异存储为sqlinsert语句,以应用于早期版本的数据库。在
注意:此脚本在模式更改时不可靠
一般来说,逻辑应该是def diff_table(table1, table2):
# return all rows in table 2 that are not in table1
pass
def persist_rows_tofile(rows, tablename):
# save rows to file
pass
dbnames=('db.v1', 'db.v2')
tables_to_process = ('foo', 'foobar')
for table in tables_to_process:
table1 = dbnames[0]+'.'+table
table2 = dbnames[1]+'.'+table
rows = diff_table(table1, table2)
if len(rows):
persist_rows_tofile(rows, table)
这是写这样一个脚本的好方法还是可以改进?。我怀疑可以通过缓存数据库连接等来改进它(我已经忽略了这一点,因为我不太熟悉SqlAlchemy等)。在
关于如何添加SqlAlchemy和如何改进这样一个脚本有什么提示吗?在