问题标签 [flyway]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
40227 浏览

flyway - 重试flyway失败的迁移

我只是在配置和完全理解flyway的过程中,我遇到了这种情况:

  • 我成功配置了一个新项目以使用 flyway。
  • 我成功地将测试数据库从版本 0 迁移到 1.0.3。
  • 无法执行到版本 1.0.4 的迁移。(我试图添加已经存在的列,到目前为止没有问题,我的错。)

但是,一旦我对相应的脚本进行了必要的更改以使其正常工作,flyway 就会不断显示此消息:

由于我不想恢复完整的转储并再次应用每个迁移,只是为了使更改表脚本正常工作,所以我最终对“schema_version”表进行了一些更改:

  • 第一次我删除了版本 1.0.4 的条目
  • 第二,我将版本 1.0.3 的“current_version”字段设置为 1
  • 然后再次执行 flyway:migrate 命令

在此之后,最终应用了迁移并显示了成功消息,但是我不太确定这是否是处理这种情况的正确方法。我不确定自己是否有权修改“schema_version”表,因为我认为它应该只由 flyway 本身修改。

所以,在解释了发生在我身上的事情之后,我的问题是:

有没有办法“重试”在flyway中应用失败的迁移,而无需自己修改“schema_version”表?

有什么我不知道的命令来完成这项任务吗?

0 投票
1 回答
1438 浏览

flyway - 为什么是版本计数器而不是时间戳

为什么 Flyway 使用版本号而不是时间戳?这应该如何与更大且可能分散的团队一起工作?

我是否必须向所有团队成员发送电子邮件,宣布我现在为我保留版本号 xy?如果两个开发人员都使用相同的版本号会怎样?如果在另一个更高的版本号已经被签入之后,一个较低的版本号被签入到版本控制中(并由集成数据库上的构建服务器执行)怎么办?

我习惯了 mybatis-migrations,它是在 rails (>=2.1) 中的迁移之后紧密建模的,其中使用时间戳而不是版本号。现在我认为时间戳更有意义:我不必担心版本号,并且很容易检测到乱序迁移。

0 投票
2 回答
28514 浏览

java - liquibase 中的 Java 代码变更集

liquibase 有没有办法创建 java 代码更改集(即提供一个 java 类,它将接收 JDBC 连接并在数据库中执行一些更改)?

(我知道flyway有这样的功能)

0 投票
1 回答
10867 浏览

java - Flyway 和 JPA 集成

我当前的 Spring 3.0 项目正在与 Flyway 集成。

感谢谷歌网站,所以有我可以指望的文件。但不幸的是,没有太多谈论与JPA.

所以问题是:

  1. 如何与 Flyway 集成persistence.xml?它是如何工作的?每次 JPA 提供程序都会auto generate更新架构,那么我们如何在此之前或之后运行脚本?

  2. 我猜到目前为止,flyway 的查询不支持 HQL,所以是否有任何示例代码,然后我可以通过了解如何集成迁移事件?设计拦截器或新方面?在域级别上做什么?

任何提示表示赞赏。提前致谢。

0 投票
1 回答
986 浏览

flyway - flyway:没有maven的db init?

恕我直言,使用 maven 进行迁移仅适用于开发机器。在服务器上,您通常没有可用的 Maven(并且可能无法将其安装在那里)。

那么:如何在没有 maven 的情况下初始化数据库?我只是调用 flyway.init() 吗?如果数据库已经被初始化了怎么办?

我可以执行 sql 语句来初始化数据库吗?我的外键和索引在不同的数据库实例之间是不同的/混乱的,所以我已经制作了一个完整的模式脚本,并通过数据导出、模式删除、模式重新创建和数据恢复对其进行了测试。我将在所有数据库上执行此操作,以确保它们完全相同。

0 投票
1 回答
1241 浏览

database-migration - 有没有办法将 flyway 中的迁移文件应用于开发人员机器而不是生产机器上?

当我为我的应用程序开发一个使用大量新表的新功能时,表定义在开发几天后才稳定。当我部署相同代码库的错误修复时,我想将这些不稳定的迁移文件签入源代码控制,而无需将它们应用于生产箱。

有没有办法将 flyway 中的迁移文件应用于开发人员机器而不是生产机器上?

我不喜欢特性分支,所以我想避免特性分支,它们对我来说维护起来太费力了。

0 投票
2 回答
715 浏览

flyway - 我可以在描述中使用数字来强制 SQL 文件的加载顺序吗?

玩弄 Flyway,我有一个问题,对于初始版本(对于一个全新的空白数据库),我可以将 SQL 文件模块化为:

等等,以便我强制 SQL 文件的精确加载顺序?

文档中没有任何内容表明我不能这样做,但是再一次,文档中没有任何内容表明我可以这样做:-)

谢谢!

0 投票
2 回答
15718 浏览

database - Flyway 无法实例化 jdbc 驱动程序

刚开始使用 Flyway 和 Spring 3.0。到目前为止,我所做的只是将 Flyway 依赖项和插件添加到我的 pom.xml 中。接下来,我尝试mvn flyway:status在命令行中运行。但是,它抱怨它无法实例化 jdbc 驱动程序(我正在使用 postgres)。

有谁知道可能是什么原因造成的?我正在使用 Springsource Tool Suite 开发我的应用程序。postgres 驱动程序位于 WEB-INF/lib/postgresql-9.1-902.jdbc4.jar 下

任何帮助是极大的赞赏!谢谢!

0 投票
1 回答
2064 浏览

flyway - flyway如何锁定postgres模式?

我正在将 Flyway 与 Postgres 一起使用,我注意到如果我的 tomcat 服务器正在运行,并且我尝试执行 aDROP SCHEMA foo它在 tomcat 关闭之前不起作用。我假设 flyway 有一些机制可以在运行后阻止对模式的修改。其他客户端修改模式的阻塞是如何在flyway中完成的。

0 投票
2 回答
8537 浏览

mysql - 飞行路线中的连接超时

我正在使用flyway 1.5和mysql Ver 14.14 Distrib 5.1.52, for unknown-linux-gnu (x86_64) using readline 5.1

我写了以下迁移:

Wheretable1很小,table2有 283,018 行。

迁移成功(列都添加到table1table2)但版本更新失败(我得到了com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: No operations allowed after connection closed.)。

我的my.cnf文件包含下一行wait_timeout=30,我认为发生的事情是添加这两列table2 花费超过wait_timout- 这导致迁移“失败” - 现在我遇到了这种情况:迁移成功但版本未更新。但后来我运行了这个 sql 查询:

得到了这个:

这表明这wait_timeout是大约8小时......

所以我的问题是为什么会发生这种连接超时?

主要是-我该如何解决?

编辑: 应用程序和数据库都在同一台机器上。

这是完整的堆栈跟踪: