我克隆了一個現有的存儲庫(由我辦公室的一個團隊創建的存儲庫,該團隊處理我們正在處理的某個應用程序中的訂閱),該存儲庫在路徑中具有一些數據庫遷移文件。\internal\db\migrations ,這是遷移文件的路徑。首先,我運行命令.for a existing docker.yaml,然后我運行命令。docker compose upgo buildgo run .我進行了調試,應用程序在即將運行遷移文件時達到了點,然后顯示錯誤:無法初始化應用程序。錯誤: 第一個 D:\訂閱存儲: 文件不存在盡管我通過調試檢查了路徑,但它們是正確的,同時遷移文件都存在。我使用Visual Studio代碼作為編輯器,Go版本1.15,docker和MySQL。我在環境窗口10上運行。
1 回答

湖上湖
TA貢獻2003條經驗 獲得超2個贊
經過調試和搜索,發現存儲庫使用一些路徑從本地驅動器獲取遷移文件。路徑是在代碼庫中為Mac編寫的,我在Windows計算機上克隆了存儲庫,因此它不起作用。
該錯誤專門發生在函數的調用中
migrate.NewWithDatabaseInstance( fmt.Sprintf("file://%s", fullPath), "mysql", driver, )
為第一個參數生成的路徑為
file//d:\\subscription-store\\....\\db\\migrations
這對于Windows來說是錯誤的,因為驅動程序d:不應該在路徑中受支持。它解析如下
"file:///"+"subscription-store\\....\\db\\migrations"
當上面的URL發送到函數而不是舊的URL時,它工作成功。
- 1 回答
- 0 關注
- 200 瀏覽
添加回答
舉報
0/150
提交
取消