【问题标题】:Export a CREATE script for a database导出数据库的 CREATE 脚本
【发布时间】:2011-08-26 19:35:59
【问题描述】:

假设我在 pgAdmin 中创建了一个数据库,但我想导出一个 CREATE sql 文件。

我将如何生成转储?

【问题讨论】:

  • @MilenA.Radev Link 给出 404。

标签: sql database postgresql


【解决方案1】:

以下是如何使用 pgAdmin 创建一个模式脚本,该脚本可以与 apgdiff 等 PostgreSql 数据库模式比较工具一起使用。这些说明适用于 pgAdmin3。

  1. 在 pgAdmin 中,右键单击数据库并单击备份。
  2. 输入适当的路径和文件名(即/some/path/my_script.sql)。
  3. 在格式下拉菜单中选择普通格式。
  4. 转到转储选项#1选项卡并选中“仅模式”。
  5. 然后单击备份。然后点击完成。

注意:是的,我知道 pgAdmin 在后台使用 pg_dump 创建脚本,但问题是关于 pgAdmin,所以这是 GUI 方法。

【讨论】:

  • 这是最新的吗?右键单击数据库时,上下文菜单中没有备份选项。工具菜单中有一个备份选项,但无论我选择什么(数据库、模式、单个表等),它总是被禁用。这适用于 Linux 上的 pgAdmin 1.18.1。
  • 原来我只需要指定 Postgres 二进制路径(pg_dump 所在的位置)。这是在 pgAdmin 的选项中完成的(文件 > 选项 > 二进制路径并设置 PG bin 路径)。这可能是因为我在安装 pgAdmin 时没有安装独立的 Postgres 客户端。
  • 三年后,依然有帮助
  • 4 年而且还在继续。
  • 仍然是最新的 (pgAdmin4)
【解决方案2】:

要生成将创建给定数据库中存在的表的 sql 脚本,请执行以下操作:

pg_dump --schema-only --no-owner the_database > create_the_tables.sql

这会给你一堆创建表语句。只是为了看看它的便携性,我尝试了以下方法:

bvm$ pg_dump -s --no-owner devdb | sqlite3 so_ans.db

然后:

bvm$ sqlite3 so_ans.db .schema
CREATE TABLE courses (
    id integer NOT NULL,
    name text,
    created_by integer,
    jc text
);

有点酷。

【讨论】:

  • 这会输出所有对象、触发器、过程等吗?
  • "pg_dump -U postgres --schema-only --no-owner 文档 > create_the_tables.sql",如果用户是 postgres 并且您使用的是 Windows 操作系统。否则,它将默认使用您的 Windows 用户帐户名。
  • 问题是如何使用 pgAdmin 而不是 pg_dump。
【解决方案3】:

然而,pgAdmin 确实有能力做你想做的事:

右键单击要导出的数据库

从弹出菜单中选择备份

选择“格式”普通。

选择“普通选项”仅模式

【讨论】:

    【解决方案4】:

    您可以通过 phpPgAdmin 来实现这一点,就像 MySQL 的 phpMyAdmin 一样。

    登录phpPgAdmin选择数据库,然后选择导出。

    【讨论】:

      【解决方案5】:

      至少在 PgAdmin III 1.22.1 中,您可以获得 CREATE 脚本: 1)右键单击表名 2)“脚本”->“创建脚本” 有一些选项可以获取 SELECT、DELETE 等。

      【讨论】:

      • 我认为这个答案很有趣,但是当我点击“脚本”时,我只能看到“选择”选项
      • 不知道为什么这被否决了,它对我有用
      猜你喜欢
      • 2022-11-09
      • 2011-03-30
      • 1970-01-01
      • 2011-05-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-21
      • 2012-04-18
      相关资源
      最近更新 更多