导出数据库的CREATE脚本

ser*_* 22 66 sql database postgresql

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

我怎么去生成转储?

Nat*_*ook 122

以下是如何使用pgAdmin创建可与PostgreSql数据库模式比较工具(如apgdiff)一起使用的模式脚本.这些说明适用于pgAdmin3.

  1. 在pgAdmin中,右键单击数据库,然后单击"备份".
  2. 输入适当的路径和文件名(即/some/path/my_script.sql).
  3. 选择Plain作为格式下拉列表中的格式.
  4. 转到转储选项#1选项卡,然后选中"仅架构".
  5. 然后单击备份.然后单击"完成".

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

  • 刚刚在pgAdmin 4上尝试过。仍然很强大。 (4认同)
  • 三年后,仍然有帮助 (3认同)
  • 4年,而且还在继续。 (2认同)

unm*_*ted 56

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

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

这将为您提供一堆create table语句.只是看看它是多么便携,我尝试了以上内容:

bvm$ pg_dump -s --no-owner devdb | sqlite3 so_ans.db
Run Code Online (Sandbox Code Playgroud)

然后:

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

有点酷.

  • 如果用户是postgres,并且您使用的是Windows操作系统,则为“ pg_dump -U postgres-仅schema-无所有者文档> create_the_tables.sql”。否则,它将默认使用您的Windows用户帐户名。 (2认同)
  • 问题是如何使用pgAdmin而不是pg_dump. (2认同)

小智 23

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

右键单击要导出的数据库

从弹出菜单中选择"备份"

选择"格式"平原.

选择"普通选项"仅架构