主要問題 - 這似乎是一個基本的飛行路線的問題,我可能會(在某種程度上)我的研究過程中錯過了這一點,但 - 這可能訪問的應用程序嘗試使用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。不清楚爲什麼下面的問題被低估?對於新手來說,我錯過了什麼嗎? –