登录
首页 >  Golang >  Go问答

Windows 上执行 MySQL 数据库迁移时遇到文件不存在的问题

来源:stackoverflow

时间:2024-02-23 21:03:27 365浏览 收藏

大家好,我们又见面了啊~本文《Windows 上执行 MySQL 数据库迁移时遇到文件不存在的问题》的内容中将会涉及到等等。如果你正在学习Golang相关知识,欢迎关注我,以后会给大家带来更多Golang相关文章,希望我们能一起进步!下面就开始本文的正式内容~

问题内容

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

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

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

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

我使用 Visual Studio Code 作为编辑器、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 发送到函数而不是旧的 url 时,它成功运行。

今天关于《Windows 上执行 MySQL 数据库迁移时遇到文件不存在的问题》的内容介绍就到此结束,如果有什么疑问或者建议,可以在golang学习网公众号下多多回复交流;文中若有不正之处,也希望回复留言以告知!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>