我克隆了一个现有的存储库(由我办公室的一个团队创建的存储库,该团队处理我们正在处理的某个应用程序中的订阅),该存储库在路径中具有一些数据库迁移文件。\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 关注
- 207 浏览
添加回答
举报
0/150
提交
取消