goose migration established
This commit is contained in:
@@ -1,11 +1,16 @@
|
|||||||
DB_USER=postgres
|
PGHOST=db
|
||||||
DB_PASSWORD=postgres
|
PGPORT=5432
|
||||||
DB_NAME=postgres
|
PGUSER=postgres
|
||||||
DB_PORT=5432
|
PGPASSWORD=postgres
|
||||||
HOST_DB=db
|
PGDATABASE=postgres
|
||||||
SERVER_PORT=8000
|
|
||||||
SSLmode=disable
|
SSLmode=disable
|
||||||
POSTGRESQL_URL='postgres://postgres:postgres@db:5432/postgres?sslmode=disable'
|
PGURL='postgres://postgres:postgres@db:5432/postgres?sslmode=disable'
|
||||||
|
|
||||||
|
# SERVER
|
||||||
|
SERVER_PORT=8000
|
||||||
|
|
||||||
# MIGRATOR
|
# MIGRATOR
|
||||||
MIGRATOR_PORT=3000
|
MIGRATOR_PORT=3000
|
||||||
|
GOOSE_DRIVER=postgres
|
||||||
|
GOOSE_DBSTRING='user=postgres dbname=postgres sslmode=disable'
|
||||||
|
GOOSE_MIGRATION_DIR=migrations
|
||||||
|
|||||||
@@ -23,11 +23,11 @@ func InitDBconnection() {
|
|||||||
slog.Info("Init DB connection")
|
slog.Info("Init DB connection")
|
||||||
dsn := fmt.Sprintf(
|
dsn := fmt.Sprintf(
|
||||||
"host=%s user=%s password=%s dbname=%s port=%s sslmode=disable TimeZone=Asia/Yekaterinburg",
|
"host=%s user=%s password=%s dbname=%s port=%s sslmode=disable TimeZone=Asia/Yekaterinburg",
|
||||||
os.Getenv("HOST_DB"),
|
os.Getenv("PGHOST"),
|
||||||
os.Getenv("DB_USER"),
|
os.Getenv("PGUSER"),
|
||||||
os.Getenv("DB_PASSWORD"),
|
os.Getenv("PGPASSWORD"),
|
||||||
os.Getenv("DB_NAME"),
|
os.Getenv("PGDATABASE"),
|
||||||
os.Getenv("DB_PORT"),
|
os.Getenv("PGPORT"),
|
||||||
)
|
)
|
||||||
db, err := gorm.Open(postgres.Open(dsn), &gorm.Config{
|
db, err := gorm.Open(postgres.Open(dsn), &gorm.Config{
|
||||||
Logger: logger.Default.LogMode(logger.Info),
|
Logger: logger.Default.LogMode(logger.Info),
|
||||||
|
|||||||
+19
-6
@@ -5,10 +5,13 @@ services:
|
|||||||
env_file:
|
env_file:
|
||||||
- .env
|
- .env
|
||||||
ports:
|
ports:
|
||||||
- "${DB_PORT}:${DB_PORT}"
|
- "${PGPORT}:${PGPORT}"
|
||||||
volumes:
|
volumes:
|
||||||
- postgres-db:/var/lib/postgresql/data
|
- postgres-db:/var/lib/postgresql/data
|
||||||
|
environment:
|
||||||
|
- POSTGRES_USER=${PGUSER}
|
||||||
|
- POSTGRES_PASSWORD=${PGPASSWORD}
|
||||||
|
- POSTGRES_DB=${PGDATABASE}
|
||||||
|
|
||||||
api:
|
api:
|
||||||
build:
|
build:
|
||||||
@@ -25,11 +28,21 @@ services:
|
|||||||
command: ./bin/api.exe
|
command: ./bin/api.exe
|
||||||
|
|
||||||
migrator:
|
migrator:
|
||||||
build: ./migrator
|
build:
|
||||||
|
context: ./migrator
|
||||||
|
dockerfile: Dockerfile
|
||||||
env_file:
|
env_file:
|
||||||
- .env
|
- .env
|
||||||
ports:
|
depends_on:
|
||||||
- "${MIGRATOR_PORT}:${MIGRATOR_PORT}"
|
- api
|
||||||
|
- db
|
||||||
|
volumes:
|
||||||
|
- goose:/migrations
|
||||||
|
environment:
|
||||||
|
- GOOSE_DRIVER=${GOOSE_DRIVER}
|
||||||
|
- GOOSE_DBSTRING=${GOOSE_DBSTRING}
|
||||||
|
command: goose up
|
||||||
|
|
||||||
volumes:
|
volumes:
|
||||||
postgres-db:
|
postgres-db:
|
||||||
|
goose:
|
||||||
+4
-6
@@ -1,11 +1,9 @@
|
|||||||
FROM golang:1.22.5
|
FROM golang:latest
|
||||||
|
|
||||||
WORKDIR /app
|
WORKDIR /app
|
||||||
|
|
||||||
COPY migrations/* app/migrations/
|
COPY . .
|
||||||
|
|
||||||
COPY go.mod app/
|
RUN go mod tidy
|
||||||
|
|
||||||
RUN go install github.com/pressly/goose/v3/cmd/goose@latest
|
RUN go install github.com/pressly/goose/v3/cmd/goose@latest
|
||||||
|
|
||||||
CMD ["goose", "-dir=/app/migrations", "user=${DB_USER}", "dbname=${DB_NAME}", "sslmode=${SSLmode}" "up"]
|
|
||||||
@@ -1,9 +1,10 @@
|
|||||||
|
-- Active: 1723171055346@@127.0.0.1@5432@postgres@public
|
||||||
-- +goose Up
|
-- +goose Up
|
||||||
-- +goose StatementBegin
|
-- +goose StatementBegin
|
||||||
CREATE TABLE IF NOT EXISTS users(
|
CREATE TABLE IF NOT EXISTS users(
|
||||||
id UUID NOT NULL PRIMARY KEY,
|
id UUID NOT NULL PRIMARY KEY,
|
||||||
name VARCHAR(50) NOT NULL,
|
name VARCHAR(50) NOT NULL,
|
||||||
email VARCHAR(50) NOT NULL UNIQUE INDEX,
|
email VARCHAR(50) NOT NULL,
|
||||||
password VARCHAR(500) NOT NULL,
|
password VARCHAR(500) NOT NULL,
|
||||||
phone VARCHAR(50)
|
phone VARCHAR(50)
|
||||||
);
|
);
|
||||||
|
|||||||
Reference in New Issue
Block a user