Skip to content

Commit 4b62b13

Browse files
committed
test: add generation test
1 parent fe21db7 commit 4b62b13

File tree

6 files changed

+66121
-8
lines changed

6 files changed

+66121
-8
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
dist

Makefile

Lines changed: 18 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,20 @@
1-
all: sqlc-gen-python sqlc-gen-python.wasm
1+
.PHONY: compile
2+
compile:
3+
sqlc compile
24

3-
sqlc-gen-python:
4-
cd plugin && go build -o ~/bin/sqlc-gen-python ./main.go
5+
.PHONY: generate
6+
generate: sqlc.yaml
7+
sqlc generate
58

6-
sqlc-gen-python.wasm:
7-
cd plugin && GOOS=wasip1 GOARCH=wasm go build -o sqlc-gen-python.wasm main.go
8-
openssl sha256 plugin/sqlc-gen-python.wasm
9+
.PHONY: clean
10+
clean:
11+
rm -rf ./_examples/gen
12+
13+
sqlc.yaml: dist/sqlc-gen-python-orm.wasm.sha256 _sqlc.yaml
14+
cat _sqlc.yaml | WASM_SHA256=$$(cat $<) envsubst > $@
15+
16+
dist/sqlc-gen-python-orm.wasm.sha256: dist/sqlc-gen-python-orm.wasm
17+
openssl sha256 $< | awk '{print $$2}' > $@
18+
19+
dist/sqlc-gen-python-orm.wasm: internal/*
20+
GOOS=wasip1 GOARCH=wasm go build -o ./dist/sqlc-gen-python-orm.wasm ./plugin/main.go

README.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
# sqlc-gen-python-orm
2+
3+
sqlc-gen-python-orm is a plugin for [sqlc](https://sqlc.dev/) that generates an ORM (now, support SQLAlchemy only) for Python.
4+
15
## Usage
26

37
```yaml
@@ -19,3 +23,7 @@ sql:
1923
emit_sync_querier: true
2024
emit_async_querier: true
2125
```
26+
27+
## Refs
28+
29+
- [sqlc plugin を書こう - 薄いブログ](https://orisano.hatenablog.com/entry/2023/09/06/010926)

_sqlc.yaml

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
version: '2'
2+
plugins:
3+
- name: py
4+
wasm:
5+
url: file://dist/sqlc-gen-python-orm.wasm
6+
sha256: $WASM_SHA256
7+
sql:
8+
- schema: "_examples/schema.sql"
9+
queries: "_examples/query.sql"
10+
engine: postgresql
11+
gen:
12+
json:
13+
out: "."
14+
codegen:
15+
- out: "_examples/gen/sqlc"
16+
plugin: py
17+
options:
18+
package: .
19+
emit_sync_querier: true
20+
emit_async_querier: true
21+
emit_pydantic_models: true
22+
emit_sqlalchemy_models: true

0 commit comments

Comments
 (0)