go中sqlc避坑 | 青训营

123 阅读2分钟

解决go中无法使用sqlc generate 问题

使用 sqlc 的 Docker 镜像在 Windows 上运行是一个很好的方法,这可以避免特定的操作系统限制。下面是如何使用 sqlc Docker 镜像的具体步骤:

  1. 安装 Docker: 如果还没有安装 Docker,你需要下载并安装 Docker Desktop for Windows

  2. 下载 SQLC Docker 镜像: 打开命令提示符或 PowerShell,然后运行以下命令来下载 sqlc 的 Docker 镜像:

    docker pull kjconroy/sqlc
    
  3. 使用 Docker 运行 SQLC: 你需要将你的项目目录(其中包含 .sql 文件和 sqlc.yaml 配置)挂载到 Docker 容器中,然后运行 sqlc 命令。

    假设你的项目位于 D:\gowork\scratch,你可以在 PowerShell 中使用以下命令:

    docker run --rm -v D:\gowork\scratch:/workdir -w /workdir kjconroy/sqlc generate
    

    命令解释:

    • --rm: 运行完后删除容器。
    • -v D:\gowork\scratch:/workdir: 将你本地的目录挂载到容器的 /workdir 目录下。
    • -w /workdir: 将容器内的工作目录设置为 /workdir
    • kjconroy/sqlc generate: 在容器内运行 sqlc 工具的 generate 命令。
  4. 访问生成的文件: 运行命令后,sqlc 将在你的项目目录 (D:\gowork\scratch) 中生成 Go 代码文件。你可以像访问系统上的任何其他文件一样访问它们。

通过这些步骤,你可以在 Windows 上使用 Docker 运行 sqlc,而不必担心工具的操作系统特定限制。 如果你想卸载 Windows Subsystem for Linux (WSL),请按照以下步骤进行:

  1. 卸载所有 Linux 发行版

    首先,可以卸载所有已安装的 Linux 发行版。打开 PowerShell 或 Command Prompt 并以管理员身份运行以下命令来列出所有安装的发行版:

    wsl --list
    

    对于列出的每个发行版,运行以下命令以卸载它:

    wsl --unregister <distribution-name>
    

    替换 <distribution-name> 为你从上面的列表中看到的发行版名称。

  2. 卸载 WSL 功能

    打开 PowerShell 或 Command Prompt,以管理员身份运行以下命令:

    dism.exe /online /disable-feature /featurename:Microsoft-Windows-Subsystem-Linux
    

    如果安装了 WSL 2 的虚拟机平台组件,请运行以下命令以卸载它:

    dism.exe /online /disable-feature /featurename:VirtualMachinePlatform
    
  3. 重启电脑

    为了确保所有更改都已生效,重启电脑。

完成上述步骤后,WSL 就被完全从你的 Windows 系统中卸载了。如果将来你再次想使用它,可以轻松地重新安装。