팀 프로젝트에서 Spring과 MySQL을 사용할때 효율적으로 협업하는 방법
# application-dev.properties
spring.datasource.url=jdbc:mysql://localhost:3306/dev_db
spring.datasource.username=dev_user
spring.datasource.password=dev_pass
# application-prod.properties
spring.datasource.url=jdbc:mysql://localhost:3306/prod_db
spring.datasource.username=prod_user
spring.datasource.password=prod_pass
그런 다음, 각 개발자가 자신의 프로파일을 설정해서 사용하면 된다.
// VM options에 추가
-Dspring.profiles.active=dev
spring.datasource.url=jdbc:mysql://localhost:3306/common_db
spring.datasource.username=common_user
spring.datasource.password=common_pass
spring.jpa.properties.hibernate.default_schema=your_schema
각자 your_schema 부분을 자신에게 맞게 설정합니다.
-- V1__create_user_table.sql
CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(100) NOT NULL
);
-- V2__add_email_to_user.sql
ALTER TABLE users ADD COLUMN email VARCHAR(255);
version: '3'
services:
db:
image: mysql:5.7
environment:
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: project_db
app:
image: your_spring_app_image
ports:
- "8080:8080"
depends_on:
- db