2010-06-08 56 views
2

anybady是否知道如何使用liquibase制作不区分大小写的表格。我正在使用最新的postgres。 例如liquibase以这种方式创建表: 在postgres中使用liquibase制作不区分大小写的表格

create table "Users" (
    "userId" integer unique not null, 
    "userFirstName" varchar(50) not null, 
    "userLastName" varchar(50) not null 
);

但如何让liquibase以这种方式来创建表:

create table Users (
    userId integer unique not null, 
    userFirstName varchar(50) not null, 
    userLastName varchar(50) not null 
);

回答

2

您可以随时使用标签来指定要执行的确切SQL如果liquibase没有生成你想要的东西。

默认的postgres支持始终在表名和列名周围使用引号,所以不会出现使用保留字作为对象名的问题。您可以通过创建自己的liquibase.database.core.PostgresDatabase子类并让liquibase使用您的类来覆盖此类。有一个escapeDatabaseObject(String)方法在原始字符串中传递并返回引用的值。您只需重写此方法即可返回原始字符串。

如何使用数据库取决于您的liquibase版本。如果您正在使用即将发布的2.0版本(http://liquibase.org/ci/latest)的快照,则只需将您的课程保存在liquibase.database.ext包中即可。如果你使用1.9,应该有一个databaseClassName参数,你可以用它来告诉liquibase你的类。

+0

我使用的是liquibase 1.9,但是这个你提到的是对我有帮助的。谢谢。 – kospiotr 2010-06-08 16:19:50