Working with a boilerplate
This commit is contained in:
parent
910bd99b47
commit
814f3bca15
2
.gitignore
vendored
2
.gitignore
vendored
@ -1,2 +1,4 @@
|
||||
src/stub
|
||||
src/internal/storage/persistence
|
||||
.idea/
|
||||
.vscode/
|
||||
|
||||
6
go.mod
6
go.mod
@ -6,12 +6,18 @@ require (
|
||||
github.com/BurntSushi/toml v1.4.0
|
||||
github.com/kavenegar/kavenegar-go v0.0.0-20240205151018-77039f51467d
|
||||
github.com/spf13/cobra v1.8.1
|
||||
google.golang.org/grpc v1.68.0
|
||||
google.golang.org/protobuf v1.35.2
|
||||
)
|
||||
|
||||
require (
|
||||
github.com/go-jet/jet/v2 v2.12.0 // indirect
|
||||
github.com/inconshreveable/mousetrap v1.1.0 // indirect
|
||||
github.com/spf13/pflag v1.0.5 // indirect
|
||||
golang.org/x/net v0.29.0 // indirect
|
||||
golang.org/x/sys v0.25.0 // indirect
|
||||
golang.org/x/text v0.18.0 // indirect
|
||||
google.golang.org/genproto/googleapis/rpc v0.0.0-20240903143218-8af14fe29dc1 // indirect
|
||||
)
|
||||
|
||||
replace github.com/kavenegar/kavenegar-go v0.0.0-20240205151018-77039f51467d => github.com/nfel/kavenegar-go v1.0.3
|
||||
|
||||
20
go.sum
20
go.sum
@ -1,8 +1,12 @@
|
||||
github.com/BurntSushi/toml v1.4.0 h1:kuoIxZQy2WRRk1pttg9asf+WVv6tWQuBNVmK8+nqPr0=
|
||||
github.com/BurntSushi/toml v1.4.0/go.mod h1:ukJfTF/6rtPPRCnwkur4qwRxa8vTRFBF0uk2lLoLwho=
|
||||
github.com/cpuguy83/go-md2man/v2 v2.0.4/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o=
|
||||
github.com/google/go-cmp v0.5.5 h1:Khx7svrCpmxxtHBq5j2mp/xVjsi8hQMfNLvJFAlrGgU=
|
||||
github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
|
||||
github.com/go-jet/jet/v2 v2.12.0 h1:z2JfvBAZgsfxlQz6NXBYdZTXc7ep3jhbszTLtETv1JE=
|
||||
github.com/go-jet/jet/v2 v2.12.0/go.mod h1:ufQVRQeI1mbcO5R8uCEVcVf3Foej9kReBdwDx7YMWUM=
|
||||
github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek=
|
||||
github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps=
|
||||
github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI=
|
||||
github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
|
||||
github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8=
|
||||
github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw=
|
||||
github.com/nfel/kavenegar-go v1.0.3 h1:ux8YWhG0NmOa0dZpW8cL+qzKusoOewIiw5tufWececU=
|
||||
@ -12,8 +16,16 @@ github.com/spf13/cobra v1.8.1 h1:e5/vxKd/rZsfSJMUX1agtjeTDf+qv1/JdBF8gg5k9ZM=
|
||||
github.com/spf13/cobra v1.8.1/go.mod h1:wHxEcudfqmLYa8iTfL+OuZPbBZkmvliBWKIezN3kD9Y=
|
||||
github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA=
|
||||
github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg=
|
||||
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 h1:E7g+9GITq07hpfrRu66IVDexMakfv52eLZ2CXBWiKr4=
|
||||
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
||||
golang.org/x/net v0.29.0 h1:5ORfpBpCs4HzDYoodCDBbwHzdR5UrLBZ3sOnUJmFoHo=
|
||||
golang.org/x/net v0.29.0/go.mod h1:gLkgy8jTGERgjzMic6DS9+SP0ajcu6Xu3Orq/SpETg0=
|
||||
golang.org/x/sys v0.25.0 h1:r+8e+loiHxRqhXVl6ML1nO3l1+oFoWbnlu2Ehimmi34=
|
||||
golang.org/x/sys v0.25.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
|
||||
golang.org/x/text v0.18.0 h1:XvMDiNzPAl0jr17s6W9lcaIhGUfUORdGCNsuLmPG224=
|
||||
golang.org/x/text v0.18.0/go.mod h1:BuEKDfySbSR4drPmRPG/7iBdf8hvFMuRexcpahXilzY=
|
||||
google.golang.org/genproto/googleapis/rpc v0.0.0-20240903143218-8af14fe29dc1 h1:pPJltXNxVzT4pK9yD8vR9X75DaWYYmLGMsEvBfFQZzQ=
|
||||
google.golang.org/genproto/googleapis/rpc v0.0.0-20240903143218-8af14fe29dc1/go.mod h1:UqMtugtsSgubUsoxbuAoiCXvqvErP7Gf0so0mK9tHxU=
|
||||
google.golang.org/grpc v1.68.0 h1:aHQeeJbo8zAkAa3pRzrVjZlbz6uSfeOXlJNQM0RAbz0=
|
||||
google.golang.org/grpc v1.68.0/go.mod h1:fmSPC5AsjSBCK54MyHRx48kpOti1/jRfOlwEWywNjWA=
|
||||
google.golang.org/protobuf v1.35.2 h1:8Ar7bF+apOIoThw1EdZl0p1oWvMqTHmpA2fRTyZO8io=
|
||||
google.golang.org/protobuf v1.35.2/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE=
|
||||
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
||||
|
||||
7
makefile
7
makefile
@ -75,10 +75,9 @@ GOOS=linux
|
||||
GOARCH=amd64
|
||||
DOCKER_IMG=
|
||||
DOCKER_REG=
|
||||
all: tidy build run
|
||||
all: clean build run
|
||||
|
||||
# Ignore
|
||||
tidy:
|
||||
clean:
|
||||
@echo -ne "Formating Code \r"
|
||||
@go fmt ./...
|
||||
@rm $(OUT)
|
||||
@ -117,7 +116,7 @@ build-migrate:
|
||||
@echo -ne "Running Migrate \r"
|
||||
@migrate \
|
||||
-path ./src/db/migration\
|
||||
-database postgres://gitea:gitea@localhost:5432/test1?sslmode=disable\
|
||||
-database postgres://gitea:gitea@localhost:5432/test3?sslmode=disable\
|
||||
up
|
||||
|
||||
build-sqlc:
|
||||
|
||||
25
sqlc.yaml
25
sqlc.yaml
@ -1,15 +1,17 @@
|
||||
version: "2"
|
||||
servers:
|
||||
- engine: postgresql
|
||||
uri: "postgresql://gitea:gitea@localhost:5432/test1?sslmode=disable"
|
||||
uri: ${PG_URL}
|
||||
sql:
|
||||
- engine: postgresql
|
||||
- name: repo
|
||||
engine: postgresql
|
||||
schema: src/db/migration/
|
||||
queries: src/internal/const/query/
|
||||
gen:
|
||||
go:
|
||||
package: persistence
|
||||
out: src/internal/storage/persistence/
|
||||
sql_package: "pgx/v5"
|
||||
package: db
|
||||
out: src/internal/domain/db/
|
||||
emit_db_tags: true
|
||||
emit_json_tags: true
|
||||
emit_prepared_queries: false
|
||||
@ -18,4 +20,17 @@ sql:
|
||||
emit_empty_slices: true
|
||||
# sql_package: "pgx/v5"
|
||||
database:
|
||||
uri: postgresql://gitea:gitea@localhost:5432/test1
|
||||
managed: true
|
||||
rules:
|
||||
- sqlc/db-prepare
|
||||
- no-pg
|
||||
- no-delete
|
||||
rules:
|
||||
- name: no-pg
|
||||
message: "invalid engine: postgresql"
|
||||
rule: |
|
||||
config.engine == "postgresql"
|
||||
- name: no-delete
|
||||
message: "don't use delete statements"
|
||||
rule: |
|
||||
query.sql.contains("DELETE")
|
||||
|
||||
0
src/db/migration/000001_init.down.sql
Normal file
0
src/db/migration/000001_init.down.sql
Normal file
34
src/db/migration/000001_init.up.sql
Normal file
34
src/db/migration/000001_init.up.sql
Normal file
@ -0,0 +1,34 @@
|
||||
BEGIN;
|
||||
|
||||
CREATE OR REPLACE FUNCTION trigger_set_timestamp()
|
||||
RETURNS TRIGGER AS $$
|
||||
BEGIN
|
||||
NEW.updated_at = NOW();
|
||||
RETURN NEW;
|
||||
END;
|
||||
$$ LANGUAGE plpgsql;
|
||||
|
||||
|
||||
-- optional uint64 id = 1; // Record Id of Log stored in db
|
||||
-- string content = 2;
|
||||
-- string effective_user = 3;
|
||||
-- optional LogSource source = 5;
|
||||
-- Importance importance = 6;
|
||||
-- Meta meta = 7;
|
||||
|
||||
CREATE TABLE if not EXISTS log
|
||||
(
|
||||
id BIGINT GENERATED ALWAYS AS IDENTITY PRIMARY KEY,
|
||||
type VARCHAR(255) NOT NULL,
|
||||
content VARCHAR(255) NOT NULL,
|
||||
user_id BIGINT,
|
||||
|
||||
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
|
||||
updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
|
||||
);
|
||||
CREATE TRIGGER set_timestamp
|
||||
BEFORE UPDATE ON log
|
||||
FOR EACH ROW
|
||||
EXECUTE PROCEDURE trigger_set_timestamp();
|
||||
|
||||
COMMIT;
|
||||
3
src/internal/const/query/q.sql
Normal file
3
src/internal/const/query/q.sql
Normal file
@ -0,0 +1,3 @@
|
||||
--- name: GetUser :one
|
||||
SELECT * FROM user
|
||||
WHERE id = $1 LIMIT 1;
|
||||
Loading…
x
Reference in New Issue
Block a user