项目中,用liquibase来管理数据库版本。在第一次的时候,创建字段名字“tenantId”。在第二个数据库日志文件中,改字段为tenant_id。配置和方法如下
liquibase:
enabled: true
change-log: classpath:db/db_script_all.xml
ALTER TABLE "public"."message" RENAME COLUMN "tenantId" to "tenant_id";
执行没问题,但是再次部署到服务器的时候,报错“tenantId”不存在。经过思考,改为下边的方式,并在navicat上顺利通过自测。故此记录一下。
DO
$do$
BEGIN
IF (select count(*) from information_schema.columns WHERE table_schema = 'public' and table_name = 'message' and column_name = 'tenantId') = 1 --一定要加括号
THEN
ALTER TABLE "public"."message" RENAME COLUMN "tenantId" to "tenant_id";
ELSE
raise notice 'tenantId not exit';
END IF;
END
$do$
网友评论