First swagger version, added auto-migrate on startup
This commit is contained in:
@@ -1,9 +1,9 @@
|
||||
-- +goose Up
|
||||
-- +goose StatementBegin
|
||||
CREATE EXTENSION IF NOT EXISTS pg_tgrm;
|
||||
CREATE EXTENSION IF NOT EXISTS pg_trgm;
|
||||
-- +goose StatementEnd
|
||||
|
||||
-- +goose Down
|
||||
-- +goose StatementBegin
|
||||
DROP EXTENSION IF EXISTS pg_tgrm;
|
||||
DROP EXTENSION IF EXISTS pg_trgm;
|
||||
-- +goose StatementEnd
|
||||
|
||||
@@ -7,7 +7,6 @@ CREATE TABLE IF NOT EXISTS users (
|
||||
password_hash VARCHAR(255) NOT NULL,
|
||||
full_name VARCHAR(150),
|
||||
avatar_url VARCHAR(512),
|
||||
role VARCHAR(50) DEFAULT 'student',
|
||||
created_at TIMESTAMPTZ DEFAULT NOW(),
|
||||
updated_at TIMESTAMPTZ,
|
||||
last_login_at TIMESTAMPTZ
|
||||
|
||||
@@ -1,9 +1,22 @@
|
||||
-- +goose Up
|
||||
-- +goose StatementBegin
|
||||
SELECT 'up SQL query';
|
||||
CREATE TABLE IF NOT EXISTS vehicles (
|
||||
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
||||
plate_number VARCHAR(20) UNIQUE NOT NULL,
|
||||
brand VARCHAR(50),
|
||||
model VARCHAR(50),
|
||||
year INTEGER,
|
||||
capacity_kg NUMERIC(10,2),
|
||||
capacity_m3 NUMERIC(10,2),
|
||||
status VARCHAR(20) DEFAULT 'available',
|
||||
slug VARCHAR(120) UNIQUE NOT NULL
|
||||
);
|
||||
|
||||
|
||||
CREATE INDEX idx_vehicles_slug ON vehicles(slug);
|
||||
-- +goose StatementEnd
|
||||
|
||||
-- +goose Down
|
||||
-- +goose StatementBegin
|
||||
SELECT 'down SQL query';
|
||||
DROP TABLE IF EXISTS vehicles;
|
||||
-- +goose StatementEnd
|
||||
|
||||
@@ -1,9 +1,18 @@
|
||||
-- +goose Up
|
||||
-- +goose StatementBegin
|
||||
SELECT 'up SQL query';
|
||||
CREATE TABLE IF NOT EXISTS drivers(
|
||||
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
||||
user_id UUID REFERENCES users(id) ON DELETE CASCADE,
|
||||
vehicle_id UUID REFERENCES vehicles(id) ON DELETE SET NULL,
|
||||
license_number VARCHAR (50) NOT NULL,
|
||||
license_expiry DATE NOT NULL,
|
||||
rating NUMERIC(3,2) DEFAULT 5.00,
|
||||
slug VARCHAR(120) UNIQUE NOT NULL,
|
||||
status VARCHAR(20) DEFAULT 'available'
|
||||
);
|
||||
-- +goose StatementEnd
|
||||
|
||||
-- +goose Down
|
||||
-- +goose StatementBegin
|
||||
SELECT 'down SQL query';
|
||||
DROP TABLE IF EXISTS drivers;
|
||||
-- +goose StatementEnd
|
||||
|
||||
@@ -1,9 +0,0 @@
|
||||
-- +goose Up
|
||||
-- +goose StatementBegin
|
||||
SELECT 'up SQL query';
|
||||
-- +goose StatementEnd
|
||||
|
||||
-- +goose Down
|
||||
-- +goose StatementBegin
|
||||
SELECT 'down SQL query';
|
||||
-- +goose StatementEnd
|
||||
14
migrations/20260304163413_create_roles.sql
Normal file
14
migrations/20260304163413_create_roles.sql
Normal file
@@ -0,0 +1,14 @@
|
||||
-- +goose Up
|
||||
-- +goose StatementBegin
|
||||
CREATE TABLE IF NOT EXISTS roles(
|
||||
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
||||
title VARCHAR(20),
|
||||
code VARCHAR(20)
|
||||
);
|
||||
|
||||
-- +goose StatementEnd
|
||||
|
||||
-- +goose Down
|
||||
-- +goose StatementBegin
|
||||
DROP TABLE IF EXISTS roles;
|
||||
-- +goose StatementEnd
|
||||
13
migrations/20260304163423_create_users_roles.sql
Normal file
13
migrations/20260304163423_create_users_roles.sql
Normal file
@@ -0,0 +1,13 @@
|
||||
-- +goose Up
|
||||
-- +goose StatementBegin
|
||||
CREATE TABLE IF NOT EXISTS user_roles(
|
||||
user_id UUID REFERENCES users(id) ON DELETE CASCADE,
|
||||
role_id UUID REFERENCES roles(id) ON DELETE CASCADE,
|
||||
PRIMARY KEY (user_id, role_id)
|
||||
);
|
||||
-- +goose StatementEnd
|
||||
|
||||
-- +goose Down
|
||||
-- +goose StatementBegin
|
||||
DROP TABLE IF EXISTS user_roles;
|
||||
-- +goose StatementEnd
|
||||
Reference in New Issue
Block a user