使用 postgresql 和 postgis 扩展的 flyway 3.3 迁移

flyway 3.3 migrations with postgresql and postgis extension

我束手无策,我不知道还能尝试什么。我正在尝试在我的本地数据库上清理飞路。我有最新的 Postgres 9.4 和最新的 PostGIS 扩展。我正在使用 public 模式来存储 10 table 和 7 个序列......它非常小。

现在我正在尝试用 Maven 做一个简单的 FlywayDB 3.3 clean 指令。我在 Maven 配置文件中列出了用户名和密码以及 public 架构。我不断收到建议各种视图的错误,PostGIS 扩展使用了 tables,因此它不会删除它们。

所以,在这里和互联网上搜索一般建议我这样做: 使用超级用户更改用户 myuser;这并没有解决我的问题。

在其他研究中,建议对数据使用另一种模式,而不是 public 模式。因此,我为我的应用程序创建了一个新模式,并移动了我的序列和 tables,包括 table spatial_ref_sys。我更新了 Maven 配置以仅清理这个新模式......但它说它不能删除 "spatial_ref_sys" 因为它被 PostGIS 使用。

我的应用有 10 table 次使用,有 7 个序列...我只想让 Flyway 清理我的数据库,这样我就可以尝试使用基线文件来重建它。我不是 PostGIS 方面的专家,所以我不知道我是否可以在不破坏我将来想使用的任何空间功能的情况下删除 table。

感谢您的帮助,如果我可以提供任何其他数据,请告诉我。

这是一个已知问题,没有简单的解决方案,但有 2 个好的解决方法:https://github.com/flyway/flyway/issues/100

如前所述,这是 flyway 的一个已知问题。

添加一个名为 beforeClean.sql 的文件,声明如下:

   DROP EXTENSION IF EXISTS PostGIS;

问题解决