如何正确删除使用Liquibase的数据库中的模式?

问题描述 投票:0回答:1

我有一个 Postgres 数据库,其中包含来自另一个 DWH 的外部架构,但最近这个原始架构已从那里删除。我们有 init.sql 文件,其内容如下(经过编辑以删除细节):

--liquibase formatted sql

--changeset author_id:create:schema:abc_schema_name

create schema abc_schema_name;

--changeset author_id:import:schema:abc_schema_name

import foreign schema abc_schema_name 
limit to (table_1, table_2, table_3) 
from server GreenPlumDev into abc_schema_name;

我们还有带有

<include file="init.sql" relativeToChangelogFile="true"/>
的changelog.xml。

如何正确地从我们的数据库中删除此模式,因为它不再存在于原始数据库中?我想过只删除 init.sql 和changelog.xml 并手动删除模式,但这是否正确?

谢谢!

liquibase liquibase-sql
1个回答
0
投票

Liquibase 设计为在应用程序的架构内运行。

我认为使用 Liquibase 变更集删除/创建模式本身不是一个好主意。没有

createSchema
deleteSchema
更改是有原因的。

我相信你可以编写自定义的

sql
changeSet 来做到这一点,但再一次,这不是 Liquibase 的设计目的。

您应该手动删除changelog、init.sql并删除schema,让DBA处理等等,具体取决于您公司的流程。

© www.soinside.com 2019 - 2024. All rights reserved.