혹시 schema.sql로 스키마 생성할 때 missing_table오류 해결법 아시는 분 있나요? 테이블은 다 정상적으로 있는데 자꾸 validation에서 막히네요!
# 로컬용 profile # 로컬에서 서버를 구동시키고 postman으로 테스트하고 싶을 떄 spring: main: allow-circular-references: true sql: init: schema-locations: classpath:schema_new.sql, classpath:org/springframework/security/oauth2/client/oauth2-client-schema.sql data-locations: classpath:data.sql encoding: UTF-8 platform: mysql datasource: url: "jdbc:mysql://localhost:3306/rg" username: dev password: dev driver-class-name: com.mysql.cj.jdbc.Driver jpa: show-sql: true generate-ddl: false database: mysql open-in-view: false hibernate: ddl-auto: validate properties: hibernate: format_sql: true use_sql_comments: true security: oauth2: client: registration: kakao: client-name: kakao client-id: 8f248aa7874df072e8d15b2d0b284108 # REST API용 client-secret: tbGLY0lEfvxkrgFWfssEaXpWTS73nPJa # 보안 scope: profile_nickname, profile_image # 필수로 처리한 항목들 redirect-uri: "http://localhost:8080/login/oauth2/code/{registrationId}" # redirectURI , 마지막은 스프링 시큐리티에서 알아서 처리해서 넣어줌 authorization-grant-type: authorization_code # client-authentication-method: POST provider: kakao: authorization-uri: https://kauth.kakao.com/oauth/authorize # 1회성 인증을 받기위함 token-uri: https://kauth.kakao.com/oauth/token # 1회성 인증 코드를 이용해 accesscode를 발급받기 위함 user-info-uri: https://kapi.kakao.com/v2/user/me # kakao에서 사용자 정보를 가져오기 위한 api user-name-attribute: id # 카카오에서 사용자 정보를 가지고 왔을 때 사용자의 고유 식별키 추출을 위한 필드명, 사용자 정보 가져오기의 회원 번호 jwt: header: token issuer: prgrms client-secret: EENY5W0eegTf1naQB2eDeyCLl5kRS2b8xa5c4qLdS0hmVjtbvo8t0yhPMcAmtPuQ expiry-seconds: 60
# DROP TABLE IF EXISTS users CASCADE; # DROP TABLE IF EXISTS group_permission CASCADE; # DROP TABLE IF EXISTS authority_groups CASCADE; # DROP TABLE IF EXISTS permissions CASCADE; CREATE TABLE permissions ( id bigint NOT NULL, name varchar(20) NOT NULL, PRIMARY KEY (id) ); CREATE TABLE authority_groups ( id bigint NOT NULL, name varchar(20) NOT NULL, PRIMARY KEY (id) ); CREATE TABLE group_permission ( id bigint NOT NULL, group_id bigint NOT NULL, permission_id bigint NOT NULL, PRIMARY KEY (id), CONSTRAINT unq_group_id_permission_id UNIQUE (group_id, permission_id), CONSTRAINT fk_group_id_for_group_permission FOREIGN KEY (group_id) REFERENCES authority_groups (id) ON DELETE RESTRICT ON UPDATE RESTRICT, CONSTRAINT fk_permission_id_for_group_permission FOREIGN KEY (permission_id) REFERENCES permissions (id) ON DELETE RESTRICT ON UPDATE RESTRICT ); CREATE TABLE users ( id bigint NOT NULL AUTO_INCREMENT, username varchar(20) NOT NULL, provider varchar(20) NOT NULL, provider_id varchar(80) NOT NULL, profile_image varchar(255) DEFAULT NULL, group_id bigint NOT NULL, PRIMARY KEY (id), CONSTRAINT unq_username UNIQUE (username), CONSTRAINT unq_provider_and_id UNIQUE (provider, provider_id), CONSTRAINT fk_group_id_for_user FOREIGN KEY (group_id) REFERENCES authority_groups (id) ON DELETE RESTRICT ON UPDATE RESTRICT ); CREATE TABLE oauth2_authorized_client ( client_registration_id varchar(100) NOT NULL, principal_name varchar(200) NOT NULL, access_token_type varchar(100) NOT NULL, access_token_value blob NOT NULL, access_token_issued_at timestamp NOT NULL, access_token_expires_at timestamp NOT NULL, access_token_scopes varchar(1000) DEFAULT NULL, refresh_token_value blob DEFAULT NULL, refresh_token_issued_at timestamp DEFAULT NULL, created_at timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL, PRIMARY KEY (client_registration_id, principal_name) );
테이블 전체 드랍하고 생성할때 이럽니다!
에러는 아래입니다.
Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled. 2022-07-31 22:19:11.811 ERROR 1864 --- [ main] o.s.boot.SpringApplication : Application run failed org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in class path resource [org/springframework/boot/autoconfigure/orm/jpa/HibernateJpaConfiguration.class]: Invocation of init method failed; nested exception is javax.persistence.PersistenceException: [PersistenceUnit: default] Unable to build Hibernate SessionFactory; nested exception is org.hibernate.tool.schema.spi.SchemaManagementException: Schema-validation: missing table [authority_groups] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1804) ~[spring-beans-5.3.20.jar:5.3.20] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:620) ~[spring-beans-5.3.20.jar:5.3.20] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:542) ~[spring-beans-5.3.20.jar:5.3.20] at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335) ~[spring-beans-5.3.20.jar:5.3.20] at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) ~[spring-beans-5.3.20.jar:5.3.20] at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333) ~[spring-beans-5.3.20.jar:5.3.20] at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208) ~[spring-beans-5.3.20.jar:5.3.20] at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1154) ~[spring-context-5.3.20.jar:5.3.20] at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:908) ~[spring-context-5.3.20.jar:5.3.20] at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:583) ~[spring-context-5.3.20.jar:5.3.20] at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:147) ~[spring-boot-2.7.0.jar:2.7.0] at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:734) ~[spring-boot-2.7.0.jar:2.7.0] at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:408) ~[spring-boot-2.7.0.jar:2.7.0] at org.springframework.boot.SpringApplication.run(SpringApplication.java:308) ~[spring-boot-2.7.0.jar:2.7.0] at org.springframework.boot.SpringApplication.run(SpringApplication.java:1306) ~[spring-boot-2.7.0.jar:2.7.0] at org.springframework.boot.SpringApplication.run(SpringApplication.java:1295) ~[spring-boot-2.7.0.jar:2.7.0] at com.prgrms.rg.RgApplication.main(RgApplication.java:12) ~[main/:na] Caused by: javax.persistence.PersistenceException: [PersistenceUnit: default] Unable to build Hibernate SessionFactory; nested exception is org.hibernate.tool.schema.spi.SchemaManagementException: Schema-validation: missing table [authority_groups] at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.buildNativeEntityManagerFactory(AbstractEntityManagerFactoryBean.java:421) ~[spring-orm-5.3.20.jar:5.3.20] at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.afterPropertiesSet(AbstractEntityManagerFactoryBean.java:396) ~[spring-orm-5.3.20.jar:5.3.20] at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.afterPropertiesSet(LocalContainerEntityManagerFactoryBean.java:341) ~[spring-orm-5.3.20.jar:5.3.20] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1863) ~[spring-beans-5.3.20.jar:5.3.20] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1800) ~[spring-beans-5.3.20.jar:5.3.20] ... 16 common frames omitted Caused by: org.hibernate.tool.schema.spi.SchemaManagementException: Schema-validation: missing table [authority_groups] at org.hibernate.tool.schema.internal.AbstractSchemaValidator.validateTable(AbstractSchemaValidator.java:129) ~[hibernate-core-5.6.9.Final.jar:5.6.9.Final] at org.hibernate.tool.schema.internal.GroupedSchemaValidatorImpl.validateTables(GroupedSchemaValidatorImpl.java:42) ~[hibernate-core-5.6.9.Final.jar:5.6.9.Final] at org.hibernate.tool.schema.internal.AbstractSchemaValidator.performValidation(AbstractSchemaValidator.java:97) ~[hibernate-core-5.6.9.Final.jar:5.6.9.Final] at org.hibernate.tool.schema.internal.AbstractSchemaValidator.doValidation(AbstractSchemaValidator.java:76) ~[hibernate-core-5.6.9.Final.jar:5.6.9.Final] at org.hibernate.tool.schema.spi.SchemaManagementToolCoordinator.performDatabaseAction(SchemaManagementToolCoordinator.java:204) ~[hibernate-core-5.6.9.Final.jar:5.6.9.Final] at org.hibernate.tool.schema.spi.SchemaManagementToolCoordinator.process(SchemaManagementToolCoordinator.java:85) ~[hibernate-core-5.6.9.Final.jar:5.6.9.Final] at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:335) ~[hibernate-core-5.6.9.Final.jar:5.6.9.Final] at org.hibernate.boot.internal.SessionFactoryBuilderImpl.build(SessionFactoryBuilderImpl.java:471) ~[hibernate-core-5.6.9.Final.jar:5.6.9.Final] at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:1498) ~[hibernate-core-5.6.9.Final.jar:5.6.9.Final] at org.springframework.orm.jpa.vendor.SpringHibernateJpaPersistenceProvider.createContainerEntityManagerFactory(SpringHibernateJpaPersistenceProvider.java:58) ~[spring-orm-5.3.20.jar:5.3.20] at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory(LocalContainerEntityManagerFactoryBean.java:365) ~[spring-orm-5.3.20.jar:5.3.20] at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.buildNativeEntityManagerFactory(AbstractEntityManagerFactoryBean.java:409) ~[spring-orm-5.3.20.jar:5.3.20] ... 20 common frames omitted