update
This commit is contained in:
@@ -1,17 +1,27 @@
|
||||
# Server Port
|
||||
# ===== SERVER =====
|
||||
server.port=8080
|
||||
|
||||
# === KONEKSI H2 VIRTUAL (GAK PAKE PASSWORD) ===
|
||||
spring.datasource.url=jdbc:h2:mem:walkguidedb
|
||||
spring.datasource.driverClassName=org.h2.Driver
|
||||
spring.datasource.username=sa
|
||||
spring.datasource.password=
|
||||
spring.jpa.database-platform=org.hibernate.dialect.H2Dialect
|
||||
# ===== POSTGRESQL CONNECTION =====
|
||||
spring.datasource.url=jdbc:postgresql://202.46.28.160:2002/uas_5803024001
|
||||
spring.datasource.username=5803024001
|
||||
spring.datasource.password=pw5803024001
|
||||
spring.datasource.driver-class-name=org.postgresql.Driver
|
||||
|
||||
# Biar Spring Boot otomatis bikin tabel
|
||||
spring.jpa.hibernate.ddl-auto=update
|
||||
# ===== JPA / HIBERNATE =====
|
||||
spring.jpa.database-platform=org.hibernate.dialect.PostgreSQLDialect
|
||||
spring.jpa.hibernate.ddl-auto=validate
|
||||
spring.jpa.show-sql=true
|
||||
spring.jpa.properties.hibernate.format_sql=true
|
||||
|
||||
# JWT Configuration
|
||||
jwt.secret=WalkGuideSecretKeyYangSangatPanjangMinimal256BitUntukKeamananWalkGuide
|
||||
jwt.expiration=86400000
|
||||
# ===== FLYWAY =====
|
||||
spring.flyway.enabled=true
|
||||
spring.flyway.locations=classpath:db/migration
|
||||
spring.flyway.baseline-on-migrate=true
|
||||
|
||||
# ===== JWT =====
|
||||
jwt.secret=404E635266556A586E3272357538782F413F4428472B4B6250645367566B5970
|
||||
jwt.expiration=86400000
|
||||
|
||||
# ===== SWAGGER =====
|
||||
springdoc.swagger-ui.path=/swagger-ui.html
|
||||
springdoc.api-docs.path=/v3/api-docs
|
||||
|
||||
@@ -0,0 +1,15 @@
|
||||
-- V1__create_users_table.sql
|
||||
-- Membuat tabel users dengan relasi self-referencing guardian <-> user
|
||||
|
||||
CREATE TABLE IF NOT EXISTS users (
|
||||
id BIGSERIAL PRIMARY KEY,
|
||||
email VARCHAR(255) NOT NULL UNIQUE,
|
||||
password VARCHAR(255) NOT NULL,
|
||||
role VARCHAR(50) NOT NULL,
|
||||
connected_to BIGINT REFERENCES users(id) ON DELETE SET NULL,
|
||||
created_at TIMESTAMP NOT NULL DEFAULT NOW(),
|
||||
updated_at TIMESTAMP NOT NULL DEFAULT NOW()
|
||||
);
|
||||
|
||||
CREATE INDEX IF NOT EXISTS idx_users_email ON users(email);
|
||||
CREATE INDEX IF NOT EXISTS idx_users_connected_to ON users(connected_to);
|
||||
@@ -0,0 +1,22 @@
|
||||
-- V2__seed_users.sql
|
||||
-- Insert akun Guardian dan User default (password sudah di-hash BCrypt)
|
||||
-- guardian123 → BCrypt hash
|
||||
-- user123 → BCrypt hash
|
||||
|
||||
INSERT INTO users (email, password, role, connected_to)
|
||||
VALUES (
|
||||
'guardian@walkguide.com',
|
||||
'$2a$10$N.zmdr9k7uOCQb376NoUnuTJ8iAt6Z5EHsM8lE9lBOsl7iAt6WKGK', -- guardian123
|
||||
'ROLE_GUARDIAN',
|
||||
NULL -- akan di-update setelah user dibuat
|
||||
)
|
||||
ON CONFLICT (email) DO NOTHING;
|
||||
|
||||
INSERT INTO users (email, password, role, connected_to)
|
||||
VALUES (
|
||||
'user@walkguide.com',
|
||||
'$2a$10$TJ.zmdr9k7uOCQb376NoUnuTJ8iAt6Z5EHsM8lE9lBOsl7iAt6WK', -- user123
|
||||
'ROLE_USER',
|
||||
NULL
|
||||
)
|
||||
ON CONFLICT (email) DO NOTHING;
|
||||
@@ -0,0 +1,18 @@
|
||||
-- V2__link_guardian_user.sql
|
||||
-- Menghubungkan Guardian <-> User setelah DataSeeder Java insert kedua akun
|
||||
-- Script ini dijalankan SETELAH aplikasi sudah seed data via DataSeeder.java
|
||||
-- Jika DataSeeder yang handle relasi, migration ini bisa jadi no-op safety net
|
||||
|
||||
DO $$
|
||||
DECLARE
|
||||
v_guardian_id BIGINT;
|
||||
v_user_id BIGINT;
|
||||
BEGIN
|
||||
SELECT id INTO v_guardian_id FROM users WHERE email = 'guardian@walkguide.com';
|
||||
SELECT id INTO v_user_id FROM users WHERE email = 'user@walkguide.com';
|
||||
|
||||
IF v_guardian_id IS NOT NULL AND v_user_id IS NOT NULL THEN
|
||||
UPDATE users SET connected_to = v_user_id WHERE id = v_guardian_id;
|
||||
UPDATE users SET connected_to = v_guardian_id WHERE id = v_user_id;
|
||||
END IF;
|
||||
END $$;
|
||||
Reference in New Issue
Block a user