【发布时间】:2017-12-20 15:04:23
【问题描述】:
我有一个带有 postgresql 数据库的项目。我正在使用 Flyway 处理迁移。现在我有一些初始数据,我想在应用程序启动时将它们添加到数据库中。这是一开始就应该始终存在的数据。我怎样才能正确处理这个数据初始化?
我一直在考虑使用 Flyways repeatable migrations。如果 sql 文件的哈希值发生变化,它总是运行。问题是,那我需要用 sql insert 语句来构造它。问题是,如果对象已经存在怎么办?理想情况下,我希望我可以在 sql 中指定数据,然后迁移将其插入到表中(如果它不存在)。但它应该查找每个字段,而不仅仅是按主键。因为如果我想在一行中更改某些内容,那么我希望将其更新到数据库中。当然,我总是可以删除表的全部内容,然后运行迁移,但从长远来看,这不是很麻烦吗?像往常一样经过少量编辑后,我需要删除表并运行迁移...我只是想知道是否有更好的方法来处理初始数据?
【问题讨论】:
标签: sql postgresql flyway