Skip to content

Commit a5ad1af

Browse files
committed
Added some examples and README for demo
1 parent 5b9a61b commit a5ad1af

File tree

3 files changed

+62
-4
lines changed

3 files changed

+62
-4
lines changed

Makefile

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
.PHONY: build build-endtoend test test-ci test-examples test-endtoend start psql mysqlsh proto
1+
.PHONY: build build-endtoend test test-ci test-examples test-endtoend start psql mysqlsh proto sqlc-dev ydb test-examples-ydb gen-examples-ydb
22

33
build:
44
go build ./...
@@ -18,13 +18,21 @@ vet:
1818
test-examples:
1919
go test --tags=examples ./...
2020

21+
ydb-examples: sqlc-dev ydb gen-examples-ydb test-examples-ydb
22+
23+
test-examples-ydb:
24+
YDB_SERVER_URI=localhost:2136 go test -v ./examples/authors/ydb/... -count=1
25+
26+
gen-examples-ydb:
27+
cd examples/authors/ && SQLCDEBUG=1 ~/bin/sqlc-dev generate && cd ../..
28+
2129
build-endtoend:
2230
cd ./internal/endtoend/testdata && go build ./...
2331

2432
test-ci: test-examples build-endtoend vet
2533

2634
sqlc-dev:
27-
go build -o ~/bin/sqlc-dev ./cmd/sqlc/
35+
go build -x -v -o ~/bin/sqlc-dev ./cmd/sqlc/
2836

2937
sqlc-pg-gen:
3038
go build -o ~/bin/sqlc-pg-gen ./internal/tools/sqlc-pg-gen
@@ -38,6 +46,9 @@ test-json-process-plugin:
3846
start:
3947
docker compose up -d
4048

49+
ydb:
50+
docker compose up -d ydb
51+
4152
fmt:
4253
go fmt ./...
4354

examples/authors/ydb/README.md

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
# Инструкция по генерации
2+
3+
В файлах `schema.sql` и `query.sql` записаны, соответственно, схема базы данных и запросы, из которых вы хотите сгенерировать код к базе данных.
4+
В `db_test.go` находятся тесты для последних сгенерированных команд.
5+
Ниже находятся команды для генерации и запуска тестов.
6+
7+
---
8+
9+
### 1. Создание бинарника sqlc
10+
11+
```bash
12+
make sqlc-dev
13+
```
14+
15+
### 2. Запуск YDB через Docker Compose
16+
17+
```bash
18+
make ydb
19+
```
20+
21+
### 3. Генерация кода для примеров для YDB
22+
23+
```bash
24+
make gen-examples-ydb
25+
```
26+
27+
### 4. Запуск тестов примеров для YDB
28+
29+
```bash
30+
make test-examples-ydb
31+
```
32+
33+
### 5. Полный цикл: сборка, генерация, тестирование (удобно одной командой)
34+
35+
```bash
36+
make ydb-examples
37+
```
38+
39+
Эта команда выполнит:
40+
41+
- Сборку `sqlc-dev`
42+
- Запуск контейнера YDB
43+
- Генерацию примеров
44+
- Тестирование примеров
45+
46+
---
47+

internal/sqltest/local/ydb.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,8 @@ type TestYDB struct {
3636
func link_YDB(t *testing.T, migrations []string, rw bool) TestYDB {
3737
t.Helper()
3838

39-
// 1) Контекст с таймаутом
39+
time.Sleep(1 * time.Second) // wait for YDB to start
40+
4041
ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second)
4142
defer cancel()
4243

@@ -78,7 +79,6 @@ func link_YDB(t *testing.T, migrations []string, rw bool) TestYDB {
7879
}
7980
prefix := fmt.Sprintf("%s/%s", baseDB, name)
8081

81-
// 2) Открываем драйвер к корню "/"
8282
rootDSN := fmt.Sprintf("grpc://%s?database=%s", dbuiri, baseDB)
8383
t.Logf("→ Opening root driver: %s", rootDSN)
8484
driver, err := ydb.Open(ctx, rootDSN,

0 commit comments

Comments
 (0)