1

我需要比较 2 个数据库方案 (DDL) - Postgress 9.5

我在两台服务器上执行以下命令:

pg_dump -U postgres --dbname=db--schema-only -f schema.sql

但我注意到方案名称的每个对象的输出前缀之一,例如

CREATE FUNCTION schemeName.function_name

而另一个没有例如:

创建函数函数名

pg_dump 中是否有任何选项可以让我决定在输出 DDL 中包含或不包含方案名称?(首选是至少删除那些架构前缀......)

4

1 回答 1

0

简而言之:你不能。但是,您可以使用它sed来自动化您的大部分编辑。


#!/bin/sh

# dump only schema "tmp"
# force quoted identifiers
# use sed to strip them
# [youstillneedtoremove the "CReate SCHEMA $SCH_NAME-stuff

DB_NAME="postgres"

pg_dump -Upostgres -n tmp --schema-only --quote-all-identifiers $DB_NAME \
   | sed 's/"tmp"\.//g' > tmp_schema_stripped.sql

#EOF
于 2019-09-29T14:37:30.837 回答