为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

Go
皈依舞 2022-08-01 10:39:45
我克隆了一个现有的存储库(由我办公室的一个团队创建的存储库,该团队处理我们正在处理的某个应用程序中的订阅),该存储库在路径中具有一些数据库迁移文件。\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时,它工作成功。


查看完整回答
反对 回复 2022-08-01
  • 1 回答
  • 0 关注
  • 207 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号