2017-10-18 9 views
0

J'ai un projet Spring Boot qui utilise H2. Peu importe ce que je mets mon nom de base de données dans mon fichier application.properties, whey j'appelle la console H2, le nom de la base de données est "test". Je peux me connecter et voir mon schéma, mais je ne peux pas mettre le nom de la base de données à autre chose que "tester". Quel que soit le nom que j'utilise dans le fichier application.properties, le nom sur la console H2 est "test".Définition du nom de la base de données H2 dans le projet Spring Boot

Mon POM est

<?xml version="1.0" encoding="UTF-8"?> 
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
<modelVersion>4.0.0</modelVersion> 

<groupId>com.example.repository</groupId> 
<artifactId>repository</artifactId> 
<version>0.0.1-SNAPSHOT</version> 
<packaging>jar</packaging> 

<name>repository</name> 
<description>repository project for Spring Boot</description> 

<parent> 
    <groupId>org.springframework.boot</groupId> 
    <artifactId>spring-boot-starter-parent</artifactId> 
    <version>1.5.2.RELEASE</version> 
    <relativePath/> <!-- lookup parent from repository --> 
</parent> 

<properties> 
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> 
    <java.version>1.8</java.version> 
</properties> 

<dependencies> 
    <dependency> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-data-jpa</artifactId> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-web</artifactId> 
    </dependency> 

    <dependency> 
     <groupId>com.h2database</groupId> 
     <artifactId>h2</artifactId> 
     <scope>runtime</scope> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-test</artifactId> 
     <scope>test</scope> 
    </dependency> 
</dependencies> 

<build> 
    <plugins> 
     <plugin> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-maven-plugin</artifactId> 
     </plugin> 
    </plugins> 
</build> 


</project> 

Mon fichier application.properties est

spring.datasource.url=jdbc:h2:file:~/test 
spring.datasource.username=sa 
spring.datasource.password= 
spring.datasource.driver-class-name=org.h2.Driver 

spring.h2.console.path=/h2-console 
spring.h2.console.enabled=true 
spring.jpa.show-sql=true 

server.port=8081 

Répondre

0

Le followingis la référence au nom de la base - file:~/test. Vous devez changer de test pour autre chose.

+0

Désolé, je n'étais pas clair. Peu importe ce que je change cela à, l'URL dans la console de connexion H2 apparaîtra comme "jdbc: h2: ~/test" et les fichiers de base de données seront nommés test.mv.db et test.trace.db. Il semble ignorer la valeur définie dans application.properties. – MikeHT

+0

H2 console c'est juste l'application d'aide, vous pouvez vous connecter à n'importe quelle base de fichier h2 db. Fondamentalement, ne pas hésiter à changer la valeur de l'URL dans la console. Les propriétés de l'application et la console h2 ne sont pas du tout connectées, vous devez donc modifier l'URL manuellement –