[SPRING] HSQLDB에서 스키마를 생성하는 시작 스크립트
SPRINGHSQLDB에서 스키마를 생성하는 시작 스크립트
나는 메모리 데이터베이스를 사용하여 테라 데이타 데이터베이스를 조롱하고있다. 테이블을 작성하기 전에 스키마를 작성해야하지만 필자에게 적합합니다.
Spring을 사용하고 import.sql과 많은 데이터베이스 상호 작용을하지만, 이것은 Hibernate가 모든 테이블을 생성 한 후에 실행됩니다. HSQLDB가 읽어야하는 .script 파일을 사용하려고 시도했지만, 작동하지 않는 메모리 내장 데이터베이스를 사용할 때 생각합니다. 파일을 조금 옮겼지만 아무것도 치는 것 같지 않습니다.
누구나 메모리 내 HSQLDB 데이터베이스를 시작할 때 스키마를 생성하는 방법을 알아 냈습니까?
해결법
-
==============================
1.이 방법으로 스크립트를 실행하면 ...
이 방법으로 스크립트를 실행하면 ...
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:jdbc="http://www.springframework.org/schema/jdbc" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/jdbc http://www.springframework.org/schema/jdbc/spring-jdbc-3.0.xsd"> <jdbc:embedded-database id="dataSource" type="H2" > <jdbc:script location="classpath:my.sql" /> </jdbc:embedded-database>
... 그것은 Hibernate가 초기화 작업을하기 전에 실행된다.
나는 그것을 특히 다시 시험해 보았습니다. 그것은 Hibernate가 테이블을 생성하기 전에 실행된다. 이 로그를 보아라 (스크립트를 실행하는 것은 처음 세 라인에 있고, 마지막 라인은 Hibernate이다) :
2011-11-01 19:10:08,380 [main] INFO org.springframework.jdbc.datasource.embedded.EmbeddedDatabaseFactory - Creating embedded database 'dataSource' 2011-11-01 19:10:08,583 [main] INFO org.springframework.jdbc.datasource.init.ResourceDatabasePopulator - Executing SQL script from class path resource [my.sql] 2011-11-01 19:10:08,683 [main] INFO org.springframework.jdbc.datasource.init.ResourceDatabasePopulator - Done executing SQL script from class path resource [my.sql] in 100 ms. 2011-11-01 19:10:08,683 [main] INFO org.springframework.context.support.GenericApplicationContext - Bean 'dataSource' of type [class org.springframework.jdbc.datasource.embedded.EmbeddedDatabaseFactoryBean] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) 2011-11-01 19:10:08,683 [main] INFO org.springframework.context.support.GenericApplicationContext - Bean 'dataSource' of type [class org.springframework.jdbc.datasource.SimpleDriverDataSource] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) 2011-11-01 19:10:08,700 [main] INFO org.springframework.context.support.GenericApplicationContext - Bean 'org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter#35712651' of type [class org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) 2011-11-01 19:10:08,717 [main] INFO org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean - Building JPA container EntityManagerFactory for persistence unit 'testH2DbPersistenceUnit' 2011-11-01 19:10:08,854 [main] INFO org.hibernate.annotations.common.Version - Hibernate Commons Annotations 3.2.0.Final 2011-11-01 19:10:08,859 [main] INFO org.hibernate.cfg.Environment - Hibernate 3.6.7.Final 2011-11-01 19:10:08,861 [main] INFO org.hibernate.cfg.Environment - hibernate.properties not found ... 2011-11-01 19:10:10,313 [main] INFO org.hibernate.tool.hbm2ddl.SchemaUpdate - Running hbm2ddl schema update 2011-11-01 19:10:10,313 [main] INFO org.hibernate.tool.hbm2ddl.SchemaUpdate - fetching database metadata 2011-11-01 19:10:10,315 [main] INFO org.hibernate.tool.hbm2ddl.SchemaUpdate - updating schema
-
==============================
2.file : 데이터베이스를 메모리의 모든 데이터와 함께 사용할 수 있으며 테스트에 변경 사항을 기록하지 않아도됩니다. 이것은 당신의 목적에 부합해야합니다.
file : 데이터베이스를 메모리의 모든 데이터와 함께 사용할 수 있으며 테스트에 변경 사항을 기록하지 않아도됩니다. 이것은 당신의 목적에 부합해야합니다.
먼저 jdbc : hsqldb : file : initdata URL로 데이터베이스 스키마를 작성하고 SHUTDOWN을 수행하십시오. 그런 다음 files_readonly = initdata.properties 파일에 true 또는 아래 URL을 사용하십시오.
jdbc:hsqldb:file:initdata;files_readonly=true
테스트가이 데이터베이스에 대해 실행되면 데이터베이스 파일에 아무 것도 기록되지 않고 모든 데이터가 메모리에 저장됩니다.
from https://stackoverflow.com/questions/7968067/startup-script-to-create-a-schema-in-hsqldb by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] spring-security-oauth2 2.0.7 새로 고침 토큰 UserDetailsService 구성 - UserDetailsService가 필요합니다. (0) | 2019.04.06 |
---|---|
[SPRING] 스프링 빈을 JSF 변환기에 삽입하는 법 [duplicate] (0) | 2019.04.06 |
[SPRING] RestTemplate을 사용하여 보안 쿠키 설정 (0) | 2019.04.06 |
[SPRING] HibernateException : 현재 스레드에 대해 트랜잭션 동기화 세션을 가져올 수 없습니다. (0) | 2019.04.05 |
[SPRING] 봄 부팅 다중 로그 파일 (0) | 2019.04.05 |