使用SqlAlchemy和SqlAlchemy-migrate管理种子数据
我在我的Pylons应用中使用SqlAlchemy来访问数据,并用SqlAlchemy-migrate来维护数据库的结构。
这样做在管理数据库结构方面效果很好。不过,我还想以类似的方式管理一些初始数据。比如,当创建ProductCategory表时,给它填充一些类别数据是很有意义的。
看起来SqlAlchemy-migrate并不直接支持这个功能。那么,使用Pylons、SqlAlchemy和SqlAlchemy-migrate,应该怎么做比较好呢?
1 个回答
2
你的种子数据最开始是什么格式的呢?这些迁移调用其实就是一些Python方法,所以你可以随意打开一些CSV文件,创建SA对象实例,进行循环等等。我通常会把我的种子数据写成一系列的SQL插入语句,然后对每一个语句进行循环,执行一个叫做migrate.execute(query)的操作。
所以我一般会先创建表格,然后循环运行种子数据,最后在降级方法中清空或者删除这个表格。