我们可以使用flyway在多个数据库上并行部署sql代码吗

Adarsh HD开发人员

我的服务器包含多个数据库,现在我需要在所有数据库上并行部署代码。在flyway中是否有可能实现这一目标,因为对于每个数据库,我都需要有单独的配置文件。所以我想知道如何以这种方式实现所有配置将并行触发。

问候,阿达什

亚历克斯·耶茨

为什么每个数据库都需要一个单独的配置文件?您可以使用此处记录的各种Flyway命令开关覆盖配置文件中的大多数/所有数据:

http://flywaydb.org/documentation/commandline/migrate.html

例如,您可以使用-URL开关覆盖配置文件中的JDBC连接字符串。这使您可以拥有一个配置文件,但可以针对不同的目标数据库运行升级。

通常最好使用这些开关,因为这样可以避免代码重复。(您不需要维护那么多的配置文件。)这也意味着您可以避免将密码之类的东西放入源代码中。

下一步是创建一个脚本,对每个目标数据库运行flyway migration。例如,您可以编写一个执行以下操作的脚本:

flyway migrate -url:jdbc:mysql://<host>:<port>/<database1>
flyway migrate -url:jdbc:mysql://<host>:<port>/<database2>
flyway migrate -url:jdbc:mysql://<host>:<port>/<database3>
flyway migrate -url:jdbc:mysql://<host>:<port>/<database4>

现在,当您运行此脚本时,将按顺序更新每个数据库。

另外,如果您需要并行运行而不是按顺序运行更新,则需要找到一种方法来安排每条线同时运行。实现此目标的一种方法是使用Octopus Deploy之类的自动化工具来协调您的部署。

如果要使用Octopus Deploy,则可能会发现此步骤模板很有用。此步骤模板还包括“漂移检查”功能,以确保您的数据库同步:

用于章鱼部署的Flyway迁移步骤模板

如果您打算使用任何其他工具,你会发现这个PowerShell脚本有用的(从上面的链接复制),其中$locationsPath$targetUrl$targetUser$targetPassword都是变量。

# Executing deployment
Write-Host "*******************************************"
Write-Host "Executing deployment:"
Write-Host " - - - - - - - - - - - - - - - - - - - - -"
    $arguments = @(
        "migrate"
        "-locations=filesystem:$locationsPath",
        "-url=$targetUrl",
        "-user=$targetUser",
        "-password=$targetPassword"
    )
Write-Host "Executing the following command: & $flywayCmd $arguments"

& $flywayCmd $arguments

问候,亚历克斯

(公开披露:我是Redgate Software的售前工程师。我编写了上述步骤模板,并与一个团队合作构建了FlySQL,该工具可帮助MySQL Flyway用户更有效地构建其项目。)

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

我们可以在Codeigniter中连接多个数据库吗?

来自分类Dev

我们可以使用JDBC在Android中连接远程MySQL数据库吗?

来自分类Dev

除了sql,我们可以在android中使用哪个数据库?

来自分类Dev

我们可以使用mysql中的字符串函数从单个查询中提取多个数据吗?

来自分类Dev

我们可以在外部数据库文件上执行sql操作吗?安卓

来自分类Dev

我们可以使用 Microsoft SEAL / PySEAL 库对加密数据进行除法运算吗

来自分类Dev

我们可以使用 apache spark 为斐波那契数列实现并行代码吗

来自分类Dev

我们可以在WAN上访问Microsoft SQL Server数据库吗?

来自分类Dev

我们可以将.sql文件导入HSQL数据库吗?

来自分类Dev

我们可以将Meteor框架与mysql数据库一起使用吗

来自分类Dev

我们可以使用执行 Sql 任务截断 Excel 工作表中的数据吗?

来自分类Dev

我们可以使用 Elasticsearch SQL 插入或更新数据吗?

来自分类Dev

我们可以在开发 Web 应用程序时同时使用 SQL 数据库和 Firebase 数据库吗?

来自分类Dev

我们可以一次打开两个数据库提供程序吗?

来自分类Dev

我们可以一次打开两个数据库提供程序吗?

来自分类Dev

我们可以将数据源连接到Power Bi中的多个本地数据库吗?

来自分类Dev

我可以使用Navigation Properties加载带有表的整个数据库吗?

来自分类Dev

我们是否可以使用SQL为所有数据库以通用/通用方式实现类似于ROW_NUMBER()的功能?

来自分类Dev

我们可以使用chef作为持续部署工具吗?

来自分类Dev

我可以使用“旧”代码访问已迁移的EF数据库吗?

来自分类Dev

MediaWiki可以使用多个MySQL数据库吗?

来自分类Dev

我们可以在多个数组上使用一个 Array.filter() 方法吗?

来自分类Dev

我们可以为Azure SQL数据库恢复已删除的服务器吗?

来自分类Dev

我们可以在PostgreSQL中更改单个表或数据库的数据目录吗

来自分类Dev

我们可以在Rhodes中使用javascript进行一些本地数据库(Rhom)操作吗

来自分类Dev

TFS 2010 丢失但数据库完好无损。我们可以继续使用它吗?

来自分类Dev

一个数据库连接可以有多个并行事务吗?

来自分类Dev

我们可以使用Java代码执行Windows Azure PowerShell吗

来自分类Dev

我们可以使用Java代码执行Windows Azure PowerShell吗

Related 相关文章

  1. 1

    我们可以在Codeigniter中连接多个数据库吗?

  2. 2

    我们可以使用JDBC在Android中连接远程MySQL数据库吗?

  3. 3

    除了sql,我们可以在android中使用哪个数据库?

  4. 4

    我们可以使用mysql中的字符串函数从单个查询中提取多个数据吗?

  5. 5

    我们可以在外部数据库文件上执行sql操作吗?安卓

  6. 6

    我们可以使用 Microsoft SEAL / PySEAL 库对加密数据进行除法运算吗

  7. 7

    我们可以使用 apache spark 为斐波那契数列实现并行代码吗

  8. 8

    我们可以在WAN上访问Microsoft SQL Server数据库吗?

  9. 9

    我们可以将.sql文件导入HSQL数据库吗?

  10. 10

    我们可以将Meteor框架与mysql数据库一起使用吗

  11. 11

    我们可以使用执行 Sql 任务截断 Excel 工作表中的数据吗?

  12. 12

    我们可以使用 Elasticsearch SQL 插入或更新数据吗?

  13. 13

    我们可以在开发 Web 应用程序时同时使用 SQL 数据库和 Firebase 数据库吗?

  14. 14

    我们可以一次打开两个数据库提供程序吗?

  15. 15

    我们可以一次打开两个数据库提供程序吗?

  16. 16

    我们可以将数据源连接到Power Bi中的多个本地数据库吗?

  17. 17

    我可以使用Navigation Properties加载带有表的整个数据库吗?

  18. 18

    我们是否可以使用SQL为所有数据库以通用/通用方式实现类似于ROW_NUMBER()的功能?

  19. 19

    我们可以使用chef作为持续部署工具吗?

  20. 20

    我可以使用“旧”代码访问已迁移的EF数据库吗?

  21. 21

    MediaWiki可以使用多个MySQL数据库吗?

  22. 22

    我们可以在多个数组上使用一个 Array.filter() 方法吗?

  23. 23

    我们可以为Azure SQL数据库恢复已删除的服务器吗?

  24. 24

    我们可以在PostgreSQL中更改单个表或数据库的数据目录吗

  25. 25

    我们可以在Rhodes中使用javascript进行一些本地数据库(Rhom)操作吗

  26. 26

    TFS 2010 丢失但数据库完好无损。我们可以继续使用它吗?

  27. 27

    一个数据库连接可以有多个并行事务吗?

  28. 28

    我们可以使用Java代码执行Windows Azure PowerShell吗

  29. 29

    我们可以使用Java代码执行Windows Azure PowerShell吗

热门标签

归档