猿问

使用 SQLC 从 Docker 迁移数据库不起作用

我正在尝试在 Windows 操作系统上使用SQLC生成数据库迁移。根据官方文档,我需要运行 Docker 命令(因为它支持 Postgres over Windows)。

如果我docker run --rm -v "${pwd}:/src" -w /src kjconroy/sqlc generate从 CLI 运行,它就可以工作。但是如果我运行make sqlc它会显示错误:

docker run --rm -v ":/src" -w /src kjconroy/sqlc 生成

解析配置文件时出错。sqlc.yaml 或 sqlc.json:文件不存在

make: *** [Makefile:12: sqlc] 错误 1

我有这样的文件夹结构:

  • 应用程序/

    • 移民/

    • 询问/

    • sqlc/

    • myquery.sql

    • D b/

    • sqlc.yaml

    • 生成文件

我的sqlc.yaml文件有这个:

version: "1"

packages:

    - name: "db"

      path: "./db/sqlc"

      queries: "./db/query"

      schema: "./db/migration/"

      engine: "postgresql"

      emit_json_tags: true

      emit_prepared_queries: false

      emit_interface: false

      emit_exact_table_names: false

还有Makefile这个:


sqlc:

    docker run --rm -v "${pwd}:/src" -w /src kjconroy/sqlc generate


.PHONY: sqlc

那么,如何从 Makefile 让它工作呢?我在这里没有收到错误?也许字段映射是错误的?


胡说叔叔
浏览 107回答 1
1回答

aluckdog

该错误sqlc.yaml or sqlc.json: file does not exist仅表示sqlc(在容器中运行)未sqlc.yaml在/src. ${pwd}当启动您要映射到的容器时/src,问题是它${pwd}没有像您期望的那样评估app/db文件夹。这可能是由于:尝试扩展它(参见GNU Make 文档和这个问题)或者,它只是没有解析到 db 文件夹在你的情况下(根据你的评论)它是前者并改变${pwd}以${CURDIR}解决问题。
随时随地看视频慕课网APP

相关分类

Go
我要回答