Создание новой Postgres схемы для предложения, готовой в Azure облаке - "непустая схема" - PullRequest
1 голос
/ 02 марта 2020

Я пытался создать контейнер Docker, готовый к предложению, в Azure облаке. Хотя я создал новую (пустую) таблицу в PostgreSQL, я получил это странное сообщение об ошибке.

javax.servlet.ServletException: org.eclipse.jetty.servlet.ServletHolder $ 1: org.flywaydb .core.api.FlywayException: найдены непустые схемы "publi c" без таблицы истории схем! Используйте baseline () или установите для baselineOnMigrate значение true, чтобы инициализировать таблицу истории схемы.

Я дважды проверил базу данных, в схеме "publi c" нет таблицы. У меня не было этой проблемы на AWS. Кто-нибудь знает, что отличается от Azure?

1 Ответ

0 голосов
/ 03 марта 2020

У меня был один и тот же опыт один раз.

  • База данных PostgreSQL на Azure казалась пустой (\dt не дал результатов),
  • Но Flyway требовал базу данных не был пустым (и поэтому не применял бы сценарии миграции из-за боязни вмешательства в то, что уже было там).

Вот что я сделал:

  1. Создать новая схема в базе данных, например myschema
  2. Удалите схему по умолчанию с именем public
  3. Добавьте параметр currentSchema=myschema в JDB C URL

И тогда это сработало. Мне так и не удалось выяснить, в чем причина root этой проблемы.

РЕДАКТИРОВАТЬ: эта ссылка может предоставить больше информации о том, какие объекты в схеме "publi c" по умолчанию на 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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...