代码之家  ›  专栏  ›  技术社区  ›  Jerome WAGNER

如何通过文件操作移动Postgres模式?

  •  1
  • Jerome WAGNER  · 技术社区  · 15 年前

    我有一个方案 示意图1 在Postgres 数据库A . 我想在 数据库B 以这个名字 示意图2 .

    我有什么选择?

    我目前: *转储 示意图1 数据库A *我在转储中完成了模式重命名: 示意图1 变成 示意图2 *还原 示意图2 在里面 数据库B

    但我正在寻找一个更有效的程序。例如,通过对Postgres二进制文件的直接文件操作。

    谢谢你的帮助

    杰罗姆·瓦格纳

    1 回复  |  直到 12 年前
        1
  •  1
  •   leonbloy    12 年前

    首先,要注意PostgreSQL和MySQL different ideas 关于什么是模式。在PostgreSQL(和SQL标准)中 schema 只是一个 命名空间 在数据库中,您可以使用它来限定对象名(类似于目录和文件;还有一个“公共”模式,该模式用作不限定名称的默认值)。因此,模式与名称的组织相关,而不是孤立:只要我们在数据库中,来自不同模式的对象(表、视图…)就相互可见;因此,例如,视图可以混合不同模式的表,或者FK可以引用其他模式。相反,不同数据库中的对象是孤立的(它们只共享用户和组),不能联接不同数据库的表。

    对于将模式从一个数据库复制到另一个数据库,转储恢复是我能想到的唯一明智的方法。即便如此,如果上面的模式依赖于数据库的其他模式,那么它可能不安全/可能(就像您将Java包的类从一个项目复制到另一个项目)一样。我做梦也不会想到要复制一份二进制文件。