我有一个 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 变更集删除/创建模式本身不是一个好主意。没有
createSchema
或 deleteSchema
更改是有原因的。
我相信你可以编写自定义的
sql
changeSet 来做到这一点,但再一次,这不是 Liquibase 的设计目的。
您应该手动删除changelog、init.sql并删除schema,让DBA处理等等,具体取决于您公司的流程。