为Azure Cloud中的要约准备创建新的Postgres方案-“非空模式”

问题描述 投票:1回答:1

我试图在Azure Cloud上构建可提供商品的Docker容器。尽管我在PostgreSQL中创建了一个新的(空白)表,但收到了这个奇怪的错误消息。

javax.servlet.ServletException:org.eclipse.jetty.servlet.ServletHolder $ 1:org.flywaydb.core.api.FlywayException:找到了没有模式历史记录表的非空模式“ public”!使用baseline()或将baselineOnMigrate设置为true可以初始化模式历史记录表。

我仔细检查了数据库,模式“ public”中没有表。我在AWS上没有那个问题。有谁知道Azure有什么不同吗?

postgresql azure flyway
1个回答
0
投票

我曾经有过相同的经历。

  • Azure上的PostgreSQL数据库似乎为空(\dt未返回任何结果,],>
  • 但是Flyway声称数据库不是空的(因此不会应用迁移脚本,因为担心会干扰已经存在的内容)。
  • 这是我所做的:

  1. [在数据库中创建新架构,例如myschema
  2. 删除默认模式public
  3. 将参数currentSchema=myschema添加到JDBC URL
  4. 然后它起作用了。我从来没有发现这个问题的根本原因是什么。

编辑:此链接可能会提供有关Azure PostgreSQL默认情况下“公共”架构中哪些对象的更多信息:https://community.atlassian.com/t5/Jira-questions/Re-quot-database-that-is-not-empty-quot-when-trying-to-use-azure/qaq-p/1308795/comment-id/410329#M410329

© www.soinside.com 2019 - 2024. All rights reserved.