在 Liquibase 中指定不同的“TAG”列名

Posted

技术标签:

【中文标题】在 Liquibase 中指定不同的“TAG”列名【英文标题】:Specifying different "TAG" column name in Liquibase 【发布时间】:2018-09-12 00:30:50 【问题描述】:

我正在尝试使用 liquibase (v3.6.1) redshift lib (https://github.com/liquibase/liquibase-redshift) 自动更新我们的 redshift 集群,但遇到了问题。当 Liquibase 第一次尝试创建 databasechangelog 表时,它失败了,因为列名“TAG”是 Redshift 中的保留字。

现在,我确实找到了这个线程 (http://forum.liquibase.org/topic/redshift-support),它提出了 lib 作者的问题。我正在使用该库的最新版本(1.0),虽然不是最新版本,但据库作者称,它应该已经解决了这个问题。但是,它要么不是固定的,要么是因为这是 Liquibase 内部使用的列名,它不会对库的保留字列表进行任何检查。

我的问题是 - 有没有办法告诉 Liquibase 为 TAG 列使用不同的名称?如果我能做到这一点,那么我也许可以解决这个问题。

【问题讨论】:

所以,奇怪的是,这对我有用。我根本没有改变任何东西,但似乎在初始运行期间创建 TAG 列的失败不再出现。只是在这里为将来遇到此帖子的任何人注意它。 【参考方案1】:

实际上这个列名是硬编码的。您可以自定义两个 liquibase 表的名称,但不能自定义其中的列

【讨论】:

谢谢,我想那时我们将不得不放弃使用 Liquibase。

以上是关于在 Liquibase 中指定不同的“TAG”列名的主要内容,如果未能解决你的问题,请参考以下文章

在“引用”迁移中指定列名

如何在 SQL Server 的交叉应用联接中指定列名

如何使用变量在ggplot中指定列名

Fluent NHibernate:如何使用约定在组件中指定列名以供参考?

如何使用 R 中指定的列名创建空数据框? [复制]

在 data.frame 中指定列名会将空格更改为“。”