簡體   English   中英

Spring Boot 數據庫只初始化一次

[英]Spring Boot database initialization only one time

我有一個 spring boot 后端應用程序,我正在尋找一種在 MySQL 數據庫中插入初始化數據的方法,但僅在每次創建表時。 我用 data.sql 做到了,但每次服務器啟動時都會插入數據。 我希望我的問題很清楚。 感謝您的時間 :)

Spring Boot 提供的數據庫初始化僅用於嵌入式數據庫。 因此,它或多或少假設您必須在應用程序的每次啟動時初始化數據庫。

對於適當的正開始和持續的數據庫的進化使用遷飛Liquibase

它在不使用 Flyway 的情況下對我來說正常工作。

我有一個 Spring Boot 應用程序和 Mysql db。 我有多個 data.*.sql 文件。 application.properties 具有以下屬性。

## To enable reading data from multiple files
spring.datasource.data = classpath:data.*.sql

# Initialize the datasource with available DDL and DML scripts
spring.datasource.initialization-mode=always 

# Hibernate ddl auto (create, create-drop, validate, update)
spring.jpa.hibernate.ddl-auto = update

data.*.sql 文件之一:

INSERT IGNORE INTO complaintPriority(name) VALUES('EMERGENCY');
INSERT IGNORE INTO complaintPriority(name) VALUES('HIGH');
INSERT IGNORE INTO complaintPriority(name) VALUES('MEDIUM');

模型類的內容:

    @Entity
    @Access(value=AccessType.FIELD)
    @Table(name = "complaintPriority", uniqueConstraints = {
            @UniqueConstraint(columnNames = {
                    "complaintPriorityId"
            })
    })
    
    public class ComplaintPriority {
        @Id
        @GeneratedValue(strategy = GenerationType.IDENTITY)
        Long complaintPriorityId;
// Other variables and methods

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM