오늘 겪은 따끈한 에러입니다.
Spring boot로 웹앱 제작 중, 요즘 대세라는 yml 파일로 설정을 시도하였습니다.
그런데 ddl-auto(테이블이 존재하지 않을 경우 자동으로 생성해 주는 기능) 설정을 create로 해 두었음에도
ddl-auto가 적용되지 않아 이런저런 문제를 확인하던 중 mappin value에 이상이 있다는 것을 알게 되었습니다.
문제는 의외로 whitespace에 있었는데요, 파이썬으로 코딩할 때 빼고는
그냥 tab을 눌러서 하위개념을 설정하곤 했는데 tab이 문제가 되었던 겁니다~~
구글링하다가 yaml syntax 문서를 보고 알게 되었는데, 우선 yaml syntax 링크입니다. --> 링크
YAML Syntax — Ansible Documentation
This page provides a basic overview of correct YAML syntax, which is how Ansible playbooks (our configuration management language) are expressed. We use YAML because it is easier for humans to read and write than other common data formats like XML or JSON.
docs.ansible.com
yaml로 yml 파일 생성 시,
하위값을 설정할 때는 스페이스를 '두 번' 입력합니다. 하위의 하위 개념에는 하위개념에서 추가로 스페이스를 '두 번'
더 입력합니다(2단계라면 도합 4개)
그리고 키:(스페이스)값 의 형태로 입력합니다.
즉, 아래의 예시와 같이 기재되어야 yml 파일이 인식됩니다.
위는 yaml syntax에 맞추어 작성한 버전, 아래는 공백을 별로 표현하여 시각적으로 보이게 한 설명버전입니다.
1
2
3
4
5
6
7
8
9
10
11
|
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
<< 공백을 ☆로 표기한 설명 >>
spring:
☆☆datasource:
☆☆☆☆driver-class-name:☆com.mysql.cj.jdbc.Driver
|
cs |
그래서 아래와 같이 application.yml 파일을 수정하니 auto ddl이 인식되어 테이블이 자동으로 생성되었습니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/DB명?serverTimezone=UTC&characterEncoding=UTF-8
username: mysql유저아이디
password: mysql유저비밀번호
jpa:
database-platform: org.hibernate.dialect.MySQL5InnoDBDialect
open-in-view: false
show-sql: true
hibernate:
format_sql: true
ddl-auto: create
-- 이하 생략 -- |
cs |
다 맞게 입력을 했는데 왜 에러가 나지? 했는데
역시 컴파일러는 잘못이 없고 새로운 걸 섣부르게 시도한 저의 탓입니다^_^
'Developments' 카테고리의 다른 글
200828 TIL: Python - SMTP를 이용한 메일 발송 (0) | 2020.08.28 |
---|---|
Hibernate ddl-auto 설정 (0) | 2020.08.18 |
200814 Spring Security 구현 (0) | 2020.08.14 |
200811 Spring MVC를 이용한 블로그 시스템 1.0 (0) | 2020.08.11 |
200806 TIL: Spring 예외처리(ExceptionHandler, ControllerAdvice) (0) | 2020.08.06 |