使用SqlAlchemy和SqlAlchemy-migrate管理种子数据

2 投票
1 回答
3250 浏览
提问于 2025-04-16 07:44

我在我的Pylons应用中使用SqlAlchemy来访问数据,并用SqlAlchemy-migrate来维护数据库的结构。

这样做在管理数据库结构方面效果很好。不过,我还想以类似的方式管理一些初始数据。比如,当创建ProductCategory表时,给它填充一些类别数据是很有意义的。

看起来SqlAlchemy-migrate并不直接支持这个功能。那么,使用Pylons、SqlAlchemy和SqlAlchemy-migrate,应该怎么做比较好呢?

1 个回答

2

你的种子数据最开始是什么格式的呢?这些迁移调用其实就是一些Python方法,所以你可以随意打开一些CSV文件,创建SA对象实例,进行循环等等。我通常会把我的种子数据写成一系列的SQL插入语句,然后对每一个语句进行循环,执行一个叫做migrate.execute(query)的操作。

所以我一般会先创建表格,然后循环运行种子数据,最后在降级方法中清空或者删除这个表格。

撰写回答