Spring Data JPA可以在PostgreSQL中自动创建数据库吗?

时间:2019-02-25 13:58:44

标签: postgresql spring-boot spring-data-jpa

我正在使用Spring Boot,Spring Data JPA和PostgreSQL。

想要将 User 实体持久保存到数据库 db_example

@Entity
@Table(name = "my_user") // user is a reserved keyword in PostgreSQL
public class User {
    @Id
    @GeneratedValue(strategy=GenerationType.AUTO)
    private Integer id;  
    private String name;    
    private String email;

    // getters and setters       
}

我的 application.properties 非常标准:

spring.jpa.properties.hibernate.jdbc.lob.non_contextual_creation=true
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.PostgreSQLDialect

spring.jpa.hibernate.show-sql=true
spring.jpa.generate-ddl=true
spring.jpa.hibernate.ddl-auto=create

spring.datasource.url=jdbc:postgresql://localhost:5432/db_example
spring.datasource.username=springuser
spring.datasource.password=ThePassword

是否可以在Spring Boot Application启动时创建数据库?

就我而言 org.postgresql.util.PSQLException: FATAL: database "db_example" does not exist

1 个答案:

答案 0 :(得分:1)

因此,我通过应用程序手动配置了此功能,而不是使用application.yml默认属性here,除了那些,您只需要添加以下内容。

有关更多信息,docs

jpaProps.put("javax.persistence.schema-generation.database.action", "update");