首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >检查数据库是否存在并以java为基础。

检查数据库是否存在并以java为基础。
EN

Stack Overflow用户
提问于 2017-11-14 13:24:19
回答 1查看 1.9K关注 0票数 1

我正试图在我的网络应用程序中使用Flyway。我读过文档,但找不到以下问题的答案:

在运行baselined之前,是否可以检查数据库是否为migrate

web应用程序已经使用了一个大型数据库。所以我需要运行baseline。我希望应用程序在启动时运行baseline和/或migrate。如果数据库不存在,则应该创建它;如果它存在,则应该是baselined,但以前它不是baselined

我已经在迁移包中添加了3个SQL文件:

代码语言:javascript
复制
V4_0_0__schema.sql
V4_0_1__index.sql
V4_0_2__initial_inserts.sql

我想这样做:

代码语言:javascript
复制
DataSource dataSource = new MysqlDataSource();
String[] locations = {"path/to/location"};

Flyway flyway = new Flyway();
flyway.setCleanDisabled(true);
flyway.setLocations(locations);
flyway.setDataSource(dataSource);

if (databaseExists()) { // how to determine that the db already exists?
    if (databaseWasBaselined() == false) { // How to check this?
        flyway.setBaselineVersion(MigrationVersion.LATEST); // will this set the version to 4_0_2?
        flyway.baseline();
    }
}
flyway.migrate();

我需要一点帮助才能做好这件事。希望有人能把我引向正确的方向。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-11-15 05:08:45

使用baselineOnMigrate选项,如立交桥场地中所记录的

迁移时是否自动调用基线是针对没有元数据表的非空模式执行的。然后,在执行迁移之前,这个模式将以baselineVersion为基础。只有在baselineVersion之上的迁移才会被应用。 这对于在具有现有DB的项目上的初始Flyway生产部署非常有用。 启用时要小心,因为它移除了安全网,以确保天桥不会在配置错误的情况下迁移错误的数据库!

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47286983

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档