Можно ли автоматически создавать SQL скриптов из моего приложения Spring Boot? - PullRequest
0 голосов
/ 20 июня 2020

Я использую PostgreSQL 10, Java 11, STS 4 и пытаюсь создать приложение Spring Boot 2. В Django и Rails есть инструменты, позволяющие автоматически генерировать сценарии SQL после того, как вы построили свои модели. То же самое и для Java / Spring? Я создал этот файл application.properties

spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.PostgreSQLDialect

spring.jpa.hibernate.ddl-auto=create

spring.jpa.hibernate.show-sql=true

spring.datasource.url=jdbc:postgresql://${PG_DB_HOST:localhost}:5432/${PG_DB_NAME}

spring.datasource.username=${PG_DB_USER}
spring.datasource.password=${PG_DB_PASS}

flyway.url = jdbc:postgresql://${PG_DB_HOST:localhost}:5432/${PG_DB_NAME}
flyway.schemas = ${PG_DB_NAME}
flyway.user = ${PG_DB_USER}
flyway.password = ${PG_DB_PASS}

, и у меня есть этот Java объект ...

import java.util.UUID;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;

@Entity
@Table(name = "Occasions")
public class Occasion {

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    @Column(name="id")
    private UUID id;

    @Column(name="name")
    private String name;
    
}

, но я не понимаю, как и можно ли автоматически генерировать сценарии SQL, используя мою сущность, или если мне придется написать их самому. Любая информация приветствуется.

Ответы [ 2 ]

0 голосов
/ 21 июня 2020

Надеть application.properties:

spring.jpa.properties.javax.persistence.schema-generation.create-source=metadata
spring.jpa.properties.javax.persistence.schema-generation.scripts.action=create
spring.jpa.properties.javax.persistence.schema-generation.scripts.create-target=create.sql

см .: { ссылка }

0 голосов
/ 20 июня 2020

Если вы используете spring -boot, по умолчанию используются фреймворки jpa + hibernate.

В этих фреймворках создание сценариев DDL не требуется, потому что при запуске вашего приложения таблицы создаются в соответствии с вашими конфигурациями : @Entity, @Table, et c

Итак, просто запустите приложение с этим параметром: create-drop

spring.jpa.hibernate.ddl-auto=create-drop

И просмотрите свою базу данных, чтобы поиск в новых таблицах.

Ссылка:

https://docs.spring.io/autorepo/docs/spring-boot/1.1.0.M1/reference/html/howto-database-initialization.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...