gpt4 book ai didi

java - Spring 启动应用程序: how to create shema using flyway on startup?

转载 作者:行者123 更新时间:2023-12-02 08:44:59 25 4
gpt4 key购买 nike

有 Spring Boot 应用程序。这是配置:

spring
flyway:
locations: classpath:db/migration
baseline-on-migrate: true
schemas: ${app.db.schema}
placeholders:
schema: ${app.db.schema}
init-sqls: CREATE SCHEMA IF NOT EXISTS ${app.db.schema}

而且它不起作用。

我需要在 Flyway 运行迁移之前创建数据库架构。

最佳答案

Flyway 尝试从 classpath:db/migration 读取数据库迁移脚本默认文件夹。

所有迁移脚本必须遵循特定的命名约定 - V<VERSION_NUMBER>__<NAME>.sql .

创建一个名为 V1__Create_Tables.sql 的新文件里面src/main/resources/db/migration目录并添加sql脚本,例如:

-- ----------------------------
-- Schema for helloservice
-- ----------------------------
CREATE SCHEMA IF NOT EXISTS helloworld;
-- ----------------------------
-- Table structure for user
-- ----------------------------
CREATE TABLE helloworld.users (
id BIGSERIAL PRIMARY KEY NOT NULL UNIQUE,
username VARCHAR(255) UNIQUE NOT NULL,
password VARCHAR(255) NOT NULL,
first_name VARCHAR(255),
middle_name VARCHAR(255),
last_name VARCHAR(255),
email VARCHAR(255),
enabled bool NOT NULL DEFAULT true,
account_locked bool NOT NULL,
account_expired bool NOT NULL,
credential_expired bool NOT NULL,
created_on timestamp(6) NOT NULL DEFAULT CURRENT_TIMESTAMP,
updated_on timestamp(6) NOT NULL DEFAULT CURRENT_TIMESTAMP
);
COMMENT ON TABLE helloworld.users IS 'User table';

当您运行应用程序时,flyway 将自动检查当前数据库版本并应用任何挂起的迁移。默认情况下,不需要其他属性。您还可以在此脚本中创建架构。或者,如果您指定不存在的方案,flyway 将为您完成。

如果您使用 hibernate,请检查此属性:

spring.jpa.hibernate.ddl-auto=validate

有关详细信息,请参阅instructions .

关于java - Spring 启动应用程序: how to create shema using flyway on startup?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61140620/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com