Я пишу приложение базы данных swing в Spring IDE [SetNew] -eclipse и maven. так что вот мой простой код подключения db и переносите его с помощью пролетного пути.
Основной класс
public static void main(final String[] args) throws SQLException {
final BasicDataSource ds = new BasicDataSource();
ds.setDriverClassName("org.h2.Driver");
ds.setUrl("jdbc:h2:target/db");
ds.setUsername("root");
ds.setPassword("");
try {
final Flyway flyway = new Flyway();
flyway.setDataSource(ds);
flyway.migrate(); // line no :12
}}
Имя схемы по стандарту пролетного пути (2.2.1):
V1__init_db.sql
И когда я запускаю этот код, я получил эту ошибку:
Exception in thread "main" com.googlecode.flyway.core.api.FlywayException:
Migration of schema "PUBLIC" to version 1.2 failed! Please restore backups and roll back database and code!
at com.googlecode.flyway.core.command.DbMigrate.migrate(DbMigrate.java:199)
at com.googlecode.flyway.core.Flyway$1.execute(Flyway.java:872)
at com.googlecode.flyway.core.Flyway$1.execute(Flyway.java:819)
at com.googlecode.flyway.core.Flyway.execute(Flyway.java:1200)
at com.googlecode.flyway.core.Flyway.migrate(Flyway.java:819)
at com.swdb.exApp.Main.main(12)
любой знает, что такое help.please. а также это тюнинг от Alber Attard здесь
Проверьте свою базу данных. Flyway ранее выполнялся против сконфигурированной схемы и сбой миграции. Если вы можете отказаться от схемы, просто выпустите flyway.clean()
и вы сможете начать новую работу. ЕСЛИ НЕ, вы должны выполнить очистку вручную, прежде чем продолжить.
"Миграция схемы" PUBLIC "до версии XX не удалась!" часто могут появляться на консоли или в файлах отчетов, но могут маскировать более серьезную ошибку с SQL. Когда я получил эту проблему, я позже заметил, что папка target/db имеет файл с именем.trace.db. Когда я просмотрел этот файл трассировки в текстовом редакторе, он показал мне точную ошибку SQL, которую я получал, в моем случае я пытался вставить с недопустимым именем столбца.
Как подчеркнул разработчик Flyway, при запуске миграции возникла проблема.
В идеале мы начинаем с нуля. База данных создается в папке с именем db
в target
каталоге (ds.setUrl("jdbc:h2:target/db");
). Удалите каталог db
. Это удалит всю базу данных. Это заставит Flyway снова начать работу и выполнить сценарии миграции.
Убедитесь, что вы используете правильные версии. В этом руководстве мы делаем следующие версии (с которыми управляются зависимости через Maven):
<dependencies>
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<version>1.3.173</version>
</dependency>
<dependency>
<groupId>commons-dbcp</groupId>
<artifactId>commons-dbcp</artifactId>
<version>1.4</version>
</dependency>
<dependency>
<groupId>com.googlecode.flyway</groupId>
<artifactId>flyway-core</artifactId>
<version>2.3.1</version>
</dependency>
</dependencies>
Я считаю, что некоторые новые версии H2 несовместимы с этими примерами и моими проблемами.
Можете ли вы попробовать это?
С уважением, Альберт Аттард