主要问题 - 这似乎是一个基本的飞行路线的问题,我可能会(在某种程度上)我的研究过程中错过了这一点,但 - 这可能访问的应用程序尝试使用flyway迁移数据时使用的服务(配置了spring)?迁飞DB迁移 - 如何访问应用服务(配置春季)
其他细节 - - 下面的几个细节
- 我知道我们不能注入春天的数据服务等。(learnt from this SO question)。我从数据访问点 的角度了解这一点。
- 但是我们不能使用(注射)任何其他应用服务 要么同时使用飞路(我搜索的例子 - 但没有 运气,并没有对飞行用文件给出任何细节)
- 让我们说我们不能用任何Spring服务(我找到一些方法来解决这个问题),我们可以访问在 application.properties/.yml中声明的属性(这也不可能)。
把上面的我们的要求方面 - 我们已经增加了几个新领域的几桌,当我们要填充这些列与数据发布的一部分。这要求我们(或飞路)执行以下算法 -
- 从第一个表中获取数据。
- 使用来自每行的一些数据,使用API 调用查找更多数据。
- API的URL是特定于环境的(因此上面的第三点 )。
- 将从API返回的数据更新到新添加的列中。
- 为下表重复上述步骤。
P.S. - 我知道,添加依赖于同一个表中的其他列的列不符合第三常规等,但由于本文之外的原因,它是必需的。
技术堆栈 -
- 春天启动的1.3.x
- 迁飞4.0.3
- 使用Java迁移
几个例子,我试过如下 -
我的飞路m移民课程如下。
public class R__MigrationYeah implements SpringJdbcMigration {
@Value("${mypath.subpath}") // this does not work !
private String someStringIwannaUse;
@Inject // this does not work either (even with Autowired or Const. injection)!
private MyService myService;
}
我看到一些帖子/有关于如何配置飞行路线繁复的细节博客MigrationResolver或ConfigurationAware等等 - 不知道他们解决这个问题(即使他们这样做 - 这是工作很多刚编写一个快速迁移脚本 - 这是唯一的方法吗?)。
最后 - 我知道我失去了一些东西,因为如果我们要编写飞行用的Java代码,而不能使用任何现有应用程序类直通春天,那就不会有比写一个独立的迁移项目(因此没有不同除了使数据库连接可用外,通过flyway添加的值) - 我确信这不是这种情况。
任何帮助将是伟大的!
**更新** - 我们终于结束了使用的解决方法解决方案(如在上述问题的最后一节,也从@DanielKafer下面的答案)。由于这种方式不适用于飞行路线。 _P.S。不清楚为什么下面的问题被低估?对于新手来说,我错过了什么吗? –