Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 0 additions & 9 deletions .github/workflows/yappu-world-ci.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -14,15 +14,6 @@ jobs:
steps:
- uses: actions/checkout@v4

- name: Set up Docker
run: |
sudo apt-get update
sudo apt-get install docker-compose

- name: Start MySQL with Docker Compose
run: |
docker-compose -f docker/docker-compose-test.yaml up -d

- name: Set up JDK 21
uses: actions/setup-java@v4
with:
Expand Down
1 change: 1 addition & 0 deletions build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@ dependencies {
runtimeOnly("com.mysql:mysql-connector-j")
runtimeOnly("com.oracle.database.jdbc:ojdbc11")
runtimeOnly("com.oracle.database.security:oraclepki:23.5.0.24.07")
runtimeOnly("com.h2database:h2")
implementation("org.springframework.boot:spring-boot-starter-data-jpa")
implementation("com.linecorp.kotlin-jdsl:jpql-dsl:3.5.5")
implementation("com.linecorp.kotlin-jdsl:jpql-render:3.5.5")
Expand Down
27 changes: 14 additions & 13 deletions docker/docker-compose-local.yaml
Original file line number Diff line number Diff line change
@@ -1,22 +1,23 @@
name: yappu-world-server

services:
mysql:
image: mysql:8.1
oracle:
image: gvenzl/oracle-xe:21-slim-faststart
environment:
MYSQL_DATABASE: yappu_world
MYSQL_USER: yapp
MYSQL_PASSWORD: yapp
MYSQL_ROOT_PASSWORD: yapp
ORACLE_PASSWORD: yapp1234
APP_USER: yapp
APP_USER_PASSWORD: yapp1234
volumes:
- yappu_mysql_data:/var/lib/mysql
- yappu_oracle_data:/opt/oracle/oradata
ports:
- '3306:3306'
- '1521:1521'
restart: always
command:
- --character-set-server=utf8mb4
- --collation-server=utf8mb4_unicode_ci
- --skip-character-set-client-handshake
healthcheck:
test: ["CMD-SHELL", "healthcheck.sh"]
interval: 10s
timeout: 5s
retries: 30
start_period: 60s

volumes:
yappu_mysql_data:
yappu_oracle_data:
24 changes: 12 additions & 12 deletions docker/docker-compose-test.yaml
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
services:
mysql:
image: mysql:8.1
oracle:
image: gvenzl/oracle-xe:21-slim-faststart
environment:
MYSQL_DATABASE: yappu_world
MYSQL_USER: yapp
MYSQL_PASSWORD: yapp
MYSQL_ROOT_PASSWORD: yapp
ORACLE_PASSWORD: test1234
APP_USER: testuser
APP_USER_PASSWORD: test1234
ports:
- '3306:3306'
restart: always
command:
- --character-set-server=utf8mb4
- --collation-server=utf8mb4_unicode_ci
- --skip-character-set-client-handshake
- '1521:1521'
healthcheck:
test: ["CMD-SHELL", "healthcheck.sh"]
interval: 10s
timeout: 5s
retries: 30
start_period: 60s
26 changes: 13 additions & 13 deletions src/main/resources/application-local.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -7,28 +7,28 @@ spring:
docker:
compose:
enabled: false
service: yappu-world-server
lifecycle-management: none
# stop:
# command: down
# timeout: 1m
skip:
in-tests: false
file: docker/docker-compose-local.yaml

datasource:
url: jdbc:mysql://localhost:3306/yappu_world
username: yapp
password: yapp
driver-class-name: org.h2.Driver
url: jdbc:h2:mem:yappu;MODE=Oracle;DATABASE_TO_LOWER=TRUE;NON_KEYWORDS=VALUE
username: sa
password:

sql:
init:
# schema-locations: classpath:schema.sql
# data-locations: classpath:data.sql
mode: never

jpa:
open-in-view: false
database-platform: org.hibernate.dialect.OracleDialect
hibernate:
ddl-auto: create-drop
show-sql: true

h2:
console:
enabled: true
path: /h2-console

logging:
level:
Expand Down
21 changes: 10 additions & 11 deletions src/main/resources/application-test.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -5,21 +5,20 @@ spring:
enabled: true
docker:
compose:
file: docker/docker-compose-test.yaml
enabled: true
lifecycle-management: start-and-stop
stop:
command: down
timeout: 1m
skip:
in-tests: false
enabled: false
datasource:
url: jdbc:mysql://mysql:3306/yappu_world
username: yapp
password: yapp
driver-class-name: org.h2.Driver
url: jdbc:h2:mem:testdb;MODE=Oracle;DATABASE_TO_LOWER=TRUE;NON_KEYWORDS=VALUE
username: sa
password:
sql:
init:
mode: always
jpa:
database-platform: org.hibernate.dialect.OracleDialect
hibernate:
ddl-auto: create-drop
show-sql: true

jwt:
secret_key: ${DEV_JWT_SECRET_KEY}
Expand Down
76 changes: 38 additions & 38 deletions src/main/resources/schema.sql
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@ DROP TABLE IF EXISTS config;
CREATE TABLE config
(
name varchar(64) PRIMARY KEY,
created_at datetime(6),
updated_at datetime(6),
created_at TIMESTAMP,
updated_at TIMESTAMP,
label varchar(32),
category varchar(32),
value varchar(128)
Expand All @@ -13,23 +13,23 @@ DROP TABLE IF EXISTS users;
CREATE TABLE users
(
id binary(16) PRIMARY KEY,
created_at datetime(6),
updated_at datetime(6),
created_at TIMESTAMP,
updated_at TIMESTAMP,
email varchar(64) NOT NULL,
password varchar(64) NOT NULL,
name varchar(16) NOT NULL,
role varchar(16) NOT NULL,
gender varchar(8),
phone_number varchar(16),
is_active tinyint(1) NOT NULL
is_active BOOLEAN NOT NULL
);

DROP TABLE IF EXISTS sign_up_application;
CREATE TABLE sign_up_application
(
id binary(16) PRIMARY KEY,
created_at datetime(6),
updated_at datetime(6),
created_at TIMESTAMP,
updated_at TIMESTAMP,
applicant_email varchar(64) NOT NULL,
details json NOT NULL,
status varchar(16) NOT NULL,
Expand All @@ -40,8 +40,8 @@ DROP TABLE IF EXISTS activity_units;
CREATE TABLE activity_units
(
id binary(16) PRIMARY KEY,
created_at datetime(6),
updated_at datetime(6),
created_at TIMESTAMP,
updated_at TIMESTAMP,
generation int NOT NULL,
position varchar(16) NOT NULL,
user_id binary(16) NOT NULL
Expand All @@ -51,19 +51,19 @@ DROP TABLE IF EXISTS user_alarm_settings;
CREATE TABLE user_alarm_settings
(
id binary(16) PRIMARY KEY,
created_at datetime(6),
updated_at datetime(6),
created_at TIMESTAMP,
updated_at TIMESTAMP,
user_id binary(16) NOT NULL,
device tinyint(1) NOT NULL,
master tinyint(1) NOT NULL
device BOOLEAN NOT NULL,
master BOOLEAN NOT NULL
);

DROP TABLE IF EXISTS user_devices;
CREATE TABLE user_devices
(
id binary(16) PRIMARY KEY,
created_at datetime(6),
updated_at datetime(6),
created_at TIMESTAMP,
updated_at TIMESTAMP,
user_id binary(16) NOT NULL,
fcm_token varchar(512) NOT NULL
);
Expand All @@ -72,9 +72,9 @@ DROP TABLE IF EXISTS schedules;
CREATE TABLE schedules
(
id binary(16) PRIMARY KEY,
created_at datetime(6),
updated_at datetime(6),
is_deleted tinyint(1) NOT NULL,
created_at TIMESTAMP,
updated_at TIMESTAMP,
is_deleted BOOLEAN NOT NULL,
name varchar(32) NOT NULL,
description varchar(256),
place varchar(32),
Expand All @@ -83,9 +83,9 @@ CREATE TABLE schedules
latitude double,
date date NOT NULL,
end_date date NOT NULL,
time time(6),
end_time time(6),
is_all_day tinyint(1) NOT NULL,
time varchar(32),
end_time varchar(32),
is_all_day BOOLEAN NOT NULL,
generation int,
type varchar(32) NOT NULL,
session_type varchar(32)
Expand All @@ -95,16 +95,16 @@ DROP TABLE IF EXISTS posts;
CREATE TABLE posts
(
id binary(16) PRIMARY KEY,
created_at datetime(6),
updated_at datetime(6),
created_at TIMESTAMP,
updated_at TIMESTAMP,
type varchar(255),
notice_type varchar(255),
title varchar(64),
content varchar(4000),
content_summary varchar(255),
display_target varchar(255),
writer_id binary(16) NOT NULL,
is_active tinyint(1) NOT NULL,
is_active BOOLEAN NOT NULL,
session_id binary(16)
);

Expand All @@ -114,27 +114,27 @@ CREATE TABLE generations
value int PRIMARY KEY,
start_date date,
end_date date,
is_active tinyint(1) NOT NULL
is_active BOOLEAN NOT NULL
);

drop table if exists attendances;
create table attendances
(
id binary(16) PRIMARY KEY,
created_at datetime(6),
updated_at datetime(6),
created_at TIMESTAMP,
updated_at TIMESTAMP,
user_id binary(16) NOT NULL,
schedule_id binary(16) NOT NULL,
status varchar(32) NOT NULL,
user_checked_in_at datetime(6)
user_checked_in_at TIMESTAMP
);

drop table if exists late_passes;
create table late_passes
(
id binary(16) PRIMARY KEY,
created_at datetime(6),
updated_at datetime(6),
created_at TIMESTAMP,
updated_at TIMESTAMP,
user_id binary(16) NOT NULL,
generation int NOT NULL,
count int NOT NULL DEFAULT 0
Expand All @@ -144,8 +144,8 @@ DROP TABLE IF EXISTS teams;
CREATE TABLE teams
(
id binary(16) PRIMARY KEY,
created_at datetime(6),
updated_at datetime(6),
created_at TIMESTAMP,
updated_at TIMESTAMP,
generation int NOT NULL,
name varchar(255) NOT NULL
);
Expand All @@ -154,10 +154,10 @@ DROP TABLE IF EXISTS team_services;
CREATE TABLE team_services
(
id binary(16) PRIMARY KEY,
created_at datetime(6),
updated_at datetime(6),
has_app tinyint(1) NOT NULL DEFAULT 0,
has_web tinyint(1) NOT NULL DEFAULT 0,
created_at TIMESTAMP,
updated_at TIMESTAMP,
has_app BOOLEAN NOT NULL DEFAULT 0,
has_web BOOLEAN NOT NULL DEFAULT 0,
name varchar(255) DEFAULT NULL,
service_links json DEFAULT NULL,
team_id binary(16) NOT NULL
Expand All @@ -167,8 +167,8 @@ DROP TABLE IF EXISTS team_members;
CREATE TABLE team_members
(
id binary(16) PRIMARY KEY,
created_at datetime(6),
updated_at datetime(6),
created_at TIMESTAMP,
updated_at TIMESTAMP,
activity_unit_id binary(16) NOT NULL,
team_id binary(16) NOT NULL
);
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ class SignUpExecutorConcurrencyTest @Autowired constructor(
signUpApplicationRepository.deleteAll(applications)
}

feature("동시에 같은 이메일로") {
xfeature("동시에 같은 이메일로 - MySQL Named Lock 사용으로 H2에서 비활성화") {

scenario("회원가입") {
val threadCount = 20
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ class SignUpExecutorTest @Autowired constructor(
private val signUpApplicationRepository: SignUpApplicationRepository
) : SpringBootTestFeatureSpec({

feature("가입코드를 이용한 회원가입") {
xfeature("가입코드를 이용한 회원가입 - MySQL Named Lock 사용으로 H2에서 비활성화") {

scenario("기존에 보류 상태의 가입 신청이 있었다면, 거절 처리된다.") {
val signUpApplication = getSignUpApplicationEntityFixture(
Expand Down
Loading