我克隆了一個(gè)現(xiàn)有存儲(chǔ)庫(kù)(由我辦公室的一個(gè)團(tuán)隊(duì)創(chuàng)建的存儲(chǔ)庫(kù),它處理我們正在開(kāi)發(fā)的某個(gè)應(yīng)用程序中的訂閱),其中在路徑 ..\internal\db\migrations 中有一些數(shù)據(jù)庫(kù)遷移文件,這是遷移文件路徑. 首先,我docker compose up為現(xiàn)有的 docker.yaml 運(yùn)行命令,然后運(yùn)行g(shù)o build命令go run .。我進(jìn)行了調(diào)試,當(dāng)應(yīng)用程序即將運(yùn)行遷移文件時(shí),它會(huì)顯示錯(cuò)誤:無(wú)法初始化應(yīng)用程序。錯(cuò)誤:第一個(gè) D:\subscription-store: 文件不存在雖然我通過(guò)調(diào)試檢查了路徑并且它們是正確的并且同時(shí)遷移文件都存在。我正在使用 Visual Studio 代碼作為編輯器,Go 版本 1.15,docker 和 MySQL。我在環(huán)境 Windows 10 上運(yùn)行。
1 回答

呼喚遠(yuǎn)方
TA貢獻(xiàn)1856條經(jīng)驗(yàn) 獲得超11個(gè)贊
經(jīng)過(guò)調(diào)試和搜索,發(fā)現(xiàn)存儲(chǔ)庫(kù)使用一些路徑從本地驅(qū)動(dòng)器獲取遷移文件。路徑是在代碼庫(kù)中為 Mac 編寫的,我在 Windows 機(jī)器上克隆了存儲(chǔ)庫(kù),所以它不起作用。
該錯(cuò)誤具體發(fā)生在函數(shù)調(diào)用中
migrate.NewWithDatabaseInstance( fmt.Sprintf("file://%s", fullPath), "mysql", driver, )
第一個(gè)參數(shù)的生成路徑是
file//d:\\subscription-store\\....\\db\\migrations
這對(duì)于 Windows 來(lái)說(shuō)是錯(cuò)誤的,因?yàn)轵?qū)動(dòng)程序 d: 不應(yīng)該在路徑中被支持。解決如下
"file:///"+"subscription-store\\....\\db\\migrations"
當(dāng)上面的 URL 發(fā)送到函數(shù)而不是舊的時(shí),它成功地工作了。
- 1 回答
- 0 關(guān)注
- 163 瀏覽
添加回答
舉報(bào)
0/150
提交
取消