微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

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

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

我进行了调试,当应用程序即将运行迁移文件时,它显示一个错误

未能初始化应用程序。错误:第一个 D:\subscription-store: 文件不存在

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

我使用 Visual Studio 代码作为编辑器,Go 版本 1.15、docker 和 MysqL。我在 Windows 10 环境下运行。

解决方法

经过调试和搜索,发现存储库使用了一些路径从本地驱动器获取迁移文件。路径是在代码库中为 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 发送到函数而不是旧的时,它就成功了。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。