我试图在Azure Cloud上构建一个Offer Ready Docker容器。尽管我在PostgreSQL中创建了一个新的(空白(表,但我收到了这个奇怪的错误消息。
javax.servlet.ServletException:org.eclipse.jetty.servlet.ServletsHolder$1:org.flywaydb.core.api.FlywayException:发现非空架构"public",但没有架构历史表!使用baseline((或将baselineOnMigrate设置为true来初始化架构历史记录表。
我仔细检查了数据库,架构"public"中没有表。我在AWS上没有这个问题。有人知道Azure有什么不同吗?
我曾经有过同样的经历。
- Azure上的PostgreSQL数据库似乎是空的(
dt
没有返回结果( - 但Flyway声称数据库不是空的(因此不会应用迁移脚本,因为担心干扰已经存在的内容(
这是我所做的:
- 在数据库中创建一个新的模式,例如
myschema
- 删除名为
public
的默认架构 - 将参数
currentSchema=myschema
添加到JDBC URL
然后它就工作了。我一直没有弄清楚这个问题的根本原因是什么。
编辑:此链接可能提供有关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