# 동네 카페 전용 사이렌 오더 서비스
개인 프로젝트
- [dongne-cafe-web(프론트 개발)](https://github.com/beaniejoy/dongne-cafe-web)
## Specification
- java 17
- kotlin 1.6.21
- Spring Boot 2.7.0
- MySQL 8.0.21
## :pushpin: Multi Modules
- `dongne-account-api`
- 회원가입, 인증 관련 내용
- `dongne-service-api`
- 카페 관련 도메인 내용(추후 주문, 결제 적용 계획)
- `dongne-common`
- entity, repository, error, security(jwt util) 등 관리하는 공통모듈
- `db`
- flyway migration(gradle) 적용 모듈
## :pushpin: Run Application
### 💽 로컬 DB 구성 (docker)
- local에 DB(MySQL)용 docker container run
- application은 IDE에서 실행 (default profile: `local`)
```bash
$ docker run --name mysql-server -e MYSQL_ROOT_PASSWORD=beaniejoy -d -p 3306:3306 mysql:8.0.21
```
### 💽 DB Migration (flyway)
[flyway doc](https://documentation.red-gate.com/fd/flyway-documentation-138346877.html)
- **Info**
Prints the details and status information about all the migrations
```bash
$ ./gradlew :db:flywayInfo
```
- **Validate**
Validates the applied migrations against the available ones
DB에 적용된 migration과 local에 적용된 migration 정보 일치 여부 체크
```bash
$ ./gradlew :db:flywayValidate
```
- **Migrate**
Migrates the schema to the latest version
migration 설정 내용들 반영
```bash
$ ./gradlew :db:flywayMigrate
```
- **Clean**
Drops all objects (tables, views, procedures, triggers, …) in the configured schemas
(prodution 단계에서는 절대 사용 X)
```bash
$ ./gradlew :db:flywayClean -i
```
### 💽 docker compose 실행(수정 작업 진행중)
- docker compose를 이용한 nginx, DB(MySQL), application 한꺼번에 실행하는 경우
```bash
$ docker-compose up --build
```