使用像 Flyway 这样的数据库迁移工具来播种数据是一种好的做法吗?

Is Seeding Data using database migration tools like Flyway a good practice?

我们正在为我们的项目设置 Flyway,我们正在重新考虑是否要使用 Flyway 迁移或手动使用 sql 控制台或某些 bootstrap脚本。

我们担心的是,如果我们在 Flyway 中添加种子数据,这意味着 Flyway 中也需要进一步修改这些数据。而且我们可能需要使用 "where field = x" 或其他一些在特定时间点可能已经无效的条件,因为应用程序可以更改数据。这将是有问题的。

在他们的文档中,我看不到任何反对植入数据的建议。

我只是想知道使用 Flyway 等迁移工具播种数据是否是个好主意。

最合适的通常是参考数据,答案是肯定的。对于用户可修改的数据,这取决于。如果最初在所有环境中都需要此数据,那么答案可能也是肯定的。归根结底,如果稍后在某个环境中 where 条件不再成立,则可能还意味着您不想覆盖该数据。或者您需要为所有行分配固定的合成 ID 和不可变 ID,之后您可以随时参考这些 ID,即使面对数据更改也是如此。