在 Windows 上运行 mysql 数据库迁移时文件不存在

我克隆了一个现有的存储库(由我办公室的一个团队创建的存储库,该团队处理我们正在处理的某个应用程序中的订阅),该存储库在路径中具有一些数据库迁移文件。\internal\db\migrations ,这是迁移文件的路径。首先,我运行命令.for a existing docker.yaml,然后我运行命令。docker compose upgo buildgo run .

我进行了调试,应用程序在即将运行迁移文件时达到了点,然后显示错误:

无法初始化应用程序。错误: 第一个 D:\订阅存储: 文件不存在

尽管我通过调试检查了路径,但它们是正确的,同时迁移文件都存在。

我使用Visual Studio代码作为编辑器,Go版本1.15,docker和MySQL。我在环境窗口10上运行。


皈依舞
浏览 209回答 1
1回答

湖上湖

经过调试和搜索,发现存储库使用一些路径从本地驱动器获取迁移文件。路径是在代码库中为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时,它工作成功。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go