Flyway排除了回调中的某些迁移

韦德兰·科帕尼亚(Vedran Kopanja)

我想知道是否有一种方法可以使用Flyway的Callback方法排除运行时的某些迁移

我已经在其中进行了一些工作,但是我想排除一些在其描述中包含dev的迁移

谢谢!

编辑:将我的简单更改添加到迁移解析器

@Override
public Collection<ResolvedMigration> resolveMigrations() {
    assert flyway != null;
    assert flyway.getLocations() != null;
    assert flyway.getLocations().length > 0;

    List<ResolvedMigration> migrations = Lists.newArrayList();


    for (String stringLocation : flyway.getLocations()) {
        Location location = new Location(stringLocation);

        Scanner scanner = new Scanner(ClassLoader.getSystemClassLoader());
        Resource[] resources = scanner.scanForResources(location,
                flyway.getSqlMigrationPrefix(),
                flyway.getSqlMigrationSuffix());

        for (Resource resource : resources) {
            if (!resource.getFilename().contains("_dev")) {
                ResolvedMigrationImpl resolvedMigration = extractMigrationInfo(location, resource);
                resolvedMigration.setPhysicalLocation(resource.getLocationOnDisk());
                resolvedMigration.setExecutor(new SqlMigrationExecutor(new PostgreSQLDbSupport(flywayConnection),
                        resource,
                        new PlaceholderReplacer(flyway.getPlaceholders(),
                                flyway.getPlaceholderPrefix(),
                                flyway.getPlaceholderSuffix()),
                                flyway.getEncoding()));

                migrations.add(resolvedMigration);
            }
        }

        Collections.sort(migrations, new ResolvedMigrationComparator());
    }

    return migrations;
}
Markdsievers

Flyway已经提供了一个工具来执行此操作。

首先是locations可以用来隔离开发/测试迁移的工具。

src/main/resources
└── db
    ├── migration       <-- Common migrations here
    └── dev-migration   <-- Dev only migrations here

其次是resolvers重一些,但是可以用来实现类似的目的。

就个人而言,我使用了第一个选项来隔离开发迁移。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在 Flyway Scala 中回滚迁移?

来自分类Dev

在 Flyway 中省略某些迁移文件

来自分类Dev

如何从javascript Array.map()回调中排除某些元素

来自分类Dev

使用Oracle进行Flyway回调

来自分类Dev

回调中的 Nodejs Mysql 回调

来自分类Dev

检测是否从INSERT INTO操作中排除了某些记录

来自分类Dev

zip无明显原因排除了某些js文件

来自分类Dev

flyway 4.0 java base回调afterValidate无法捕获异常

来自分类Dev

Flyway:如何从迁移中删除大型迁移脚本

来自分类Dev

Android中的回调

来自分类Dev

回调中的循环

来自分类Dev

在keras中创建自定义回调时难以理解概念的某些部分

来自分类Dev

APScheduler 回调函数 - 作业完成后如何在 python 中调用某些功能/模块?

来自分类Dev

除了回调方法之外,还有什么方法可以保证回调?

来自分类Dev

排除ls中的某些文件

来自分类Dev

排除R中的某些列

来自分类Dev

排除ls中的某些文件

来自分类Dev

排除R中的某些列

来自分类Dev

回调中的调用方法

来自分类Dev

C ++:类中的回调

来自分类Dev

了解Scrapy中的回调

来自分类Dev

在rspec中运行回调

来自分类Dev

了解Express中的回调

来自分类Dev

C ++中的回调函数

来自分类Dev

Dart中的JSONP回调

来自分类Dev

Moongose中的回调函数

来自分类Dev

iFrame中的cordova回调

来自分类Dev

插件中的回调函数

来自分类Dev

jQuery回调中的歧义“ this”