使用 Flyway 时的 SQL SET 设置

Posted

技术标签:

【中文标题】使用 Flyway 时的 SQL SET 设置【英文标题】:SQL SET settings when using Flyway 【发布时间】:2017-05-12 11:41:35 【问题描述】:

在为DB迁移生成MS SQL脚本时,顶部经常有SET命令,比如

BEGIN TRANSACTION
SET QUOTED_IDENTIFIER ON
SET ARITHABORT ON
SET NUMERIC_ROUNDABORT OFF
SET CONCAT_NULL_YIELDS_NULL ON
SET ANSI_NULLS ON
SET ANSI_PADDING ON
SET ANSI_WARNINGS ON
COMMIT
GO

由于任何迁移脚本都可以根据当前的数据库迁移版本运行,因此大概每个脚本都需要有这个“头”。

有没有更好的方法来解决这个问题? 这些设置是否可以在每次迁移时运行一次,以便每个脚本文件都不必包含它?

【问题讨论】:

【参考方案1】:

我想,您必须尝试使用​​回调脚本。阅读它here。

因此,您在迁移脚本目录中有一个名为 beforeMigrate.sql 的脚本,并将此常用设置移动到其中。它们必须在每次迁移之前执行。

【讨论】:

以上是关于使用 Flyway 时的 SQL SET 设置的主要内容,如果未能解决你的问题,请参考以下文章

使用 Spring Boot 记录 Flyway sql

使用flyway迁移到Google Cloud SQL,应该复制哪些jar文件?

使用 flyway 占位符生成 sql 语句

在 PL/SQL 中使用 oracle SET 值

如何使用 hsqldb 和 SET DATABASE SQL REGULAR NAMES

使用 Flyway 部署到多个模式