내가 이메일을 넣었다가 수정하고 날짜를 넣었는데, 이미 수정전에 하나 만들어서 데이터베이스에 기록이 되자, 그것들이 수정되지 않고 오히려 오류를 내뿜는다.
2024-07-26T00:27:16.286+09:00 WARN 26632 --- [nio-8080-exec-4] o.h.engine.jdbc.spi.SqlExceptionHelper : SQL Error: 1054, SQLState: 42S22
2024-07-26T00:27:16.286+09:00 ERROR 26632 --- [nio-8080-exec-4] o.h.engine.jdbc.spi.SqlExceptionHelper : Unknown column 'u1_0.created_at' in 'field list'
2024-07-26T00:27:16.302+09:00 ERROR 26632 --- [nio-8080-exec-4] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed: org.springframework.dao.InvalidDataAccessResourceUsageException: JDBC exception executing SQL [/* <criteria> */ select u1_0.id,u1_0.created_at,u1_0.nickname,u1_0.password,u1_0.role,u1_0.username from users u1_0 where u1_0.username=?] [Unknown column 'u1_0.created_at' in 'field list'] [n/a]; SQL [n/a]] with root cause
java.sql.SQLSyntaxErrorException: Unknown column 'u1_0.created_at' in 'field list'
나중에 추가한 날짜가 없다는거다.
그래서 수동으로 데이터를 지우자
2024-07-26T00:37:53.081+09:00 WARN 11648 --- [nio-8080-exec-5] o.h.engine.jdbc.spi.SqlExceptionHelper : SQL Error: 1364, SQLState: HY000
2024-07-26T00:37:53.082+09:00 ERROR 11648 --- [nio-8080-exec-5] o.h.engine.jdbc.spi.SqlExceptionHelper : Field 'email' doesn't have a default value
2024-07-26T00:37:53.100+09:00 ERROR 11648 --- [nio-8080-exec-5] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed: org.springframework.orm.jpa.JpaSystemException: could not execute statement [Field 'email' doesn't have a default value] [/* insert for com.teamsparta.task.user.model.User */insert into users (created_at,nickname,password,role,username) values (?,?,?,?,?)]] with root cause
java.sql.SQLException: Field 'email' doesn't have a default value
이러는데, 이건 지워버린 이메일이 db에 남아있는데 왜 안보이냐는거다. 이것도 지워줘야 한다.
yml에 update를 넣었는데도 이따위다.
그래서 MySQL Command Line에 들어간다.
비번을 입력한다.
USE todo; -- 사용하고자 하는 데이터베이스 선택
ALTER TABLE users DROP COLUMN email; -- 해당 데이터베이스에서 이메일 필드 제거
이제 이메일은 사라진다.