是否可以在 Spring Boot 应用程序中使用脚本创建数据库,并使用 flyway for postgres?如果是的话怎么办?
Posted
技术标签:
【中文标题】是否可以在 Spring Boot 应用程序中使用脚本创建数据库,并使用 flyway for postgres?如果是的话怎么办?【英文标题】:is it possible to create db using script in springboot app with flyway for postgres? if yes how? 【发布时间】:2020-11-17 06:59:34 【问题描述】:这是我第一次使用flyway。我的应用程序是带有用于数据库版本控制和 postgres 作为数据库的 flyway 的 spring boot。 我已经成功编写了一个脚本 V1_1_0__create_schema1.sql 用于编写模式:
Create schema if not exists schema1;
以及创建表 V1_1_1__create_table.sql 用于写入表的第二个脚本:
create table if not exists schema1.table1( id int NOT NULL, name varchar(255), CONSTRAINT table1_pkey PRIMARY KEY (id) );
现在我想用 flyway 约定编写用于创建数据库的 sql 脚本。我该怎么做?感谢您的帮助!
【问题讨论】:
【参考方案1】:是否可以使用带有flyway的springboot应用程序中的脚本创建数据库 对于 postgres?
当然是:D!
如果是怎么办?
首先,您需要在项目中添加 flyway,作为依赖项(如果您使用 spring 依赖管理或 BOM,则没有版本):
<dependency>
<groupId>org.flywaydb</groupId>
<artifactId>flyway-core</artifactId>
</dependency>
然后 spring Boot 会自动检测 Flyway 并与其 DataSource 自动连接,并在启动时调用它。
默认情况下,flyway 在src/main/resources/db/migration
文件夹中查找迁移脚本,这些脚本必须遵循V[version_number]__[Description_of_script].sql
的命名约定,请注意您有两个下划线,例如您可以有V1__init_db.sql
然后您可以在 application.properties
中配置数据源属性,以使用以下方式激活 flyway:
spring.flyway.enabled=true
spring.flyway.baseline-on-migrate=true
#if you have multiple schemas
spring.flyway.schemas=schema1,schema2
您可以查看这些资源以了解更多详细信息,那里有很多可供探索的选项:
database-migrations-with-flyway。 build-a-spring-boot-app-with-flyway-and-postgres。 spring_boot_flyway_database【讨论】:
以上是关于是否可以在 Spring Boot 应用程序中使用脚本创建数据库,并使用 flyway for postgres?如果是的话怎么办?的主要内容,如果未能解决你的问题,请参考以下文章
是否可以在 Spring Boot 中运行两个使用 spring.jpa.generate-ddl 填充的嵌入式数据库?
是否可以在 Spring Boot 应用程序中使用脚本创建数据库,并使用 flyway for postgres?如果是的话怎么办?
是否可以在 Spring Boot 中使用 @Transactional 和 kotlin 协程?
是否有任何选项可以在 Spring Boot 中使用 Jackson 为 java.time.* 包注册一次 Serializer/Deserializer?