将数据库转储加载到 postgres 数据库中

Beg*_*ner 1 database postgresql macos

我有一个大约 270MB 的数据库转储,我想将其加载到我的本地 postgres 数据库中。我输入了以下命令:

pg_dump databasename < dumpfile.sql
Run Code Online (Sandbox Code Playgroud)

之后我得到:

--
-- PostgreSQL database dump
--

SET statement_timeout = 0;
SET lock_timeout = 0;
SET client_encoding = 'UTF8';
SET standard_conforming_strings = on;
SET check_function_bodies = false;
SET client_min_messages = warning;

--
-- Name: plpgsql; Type: EXTENSION; Schema: -; Owner:
--

CREATE EXTENSION IF NOT EXISTS plpgsql WITH SCHEMA pg_catalog;


--
-- Name: EXTENSION plpgsql; Type: COMMENT; Schema: -; Owner:
--

COMMENT ON EXTENSION plpgsql IS 'PL/pgSQL procedural language';


--
-- Name: public; Type: ACL; Schema: -; Owner: starlord
--

REVOKE ALL ON SCHEMA public FROM PUBLIC;
REVOKE ALL ON SCHEMA public FROM starlord;
GRANT ALL ON SCHEMA public TO starlord;
GRANT ALL ON SCHEMA public TO PUBLIC;


--
-- PostgreSQL database dump complete
--
Run Code Online (Sandbox Code Playgroud)

为了验证转储是否成功并检查我使用psql它打开 psql 终端登录到 psql 终端的数据。

如果我输入,\l我会得到所有的数据库。我输入\c databasename连接到数据库,然后\dt检查表。但是它一直向我展示No relations found。相同的步骤适用于其他数据库(加载转储,然后连接和显示表)。此外,在加载转储后,如果我键入\l+查看每个数据库的大小,我感兴趣的数据库会显示6973kb转储所在位置的大小272MB

关于可能是什么问题的任何建议?

Sch*_*ern 5

pg_dump用于转储数据库。pg_dump databasename < dumpfile.sql可能会忽略输入文件并将转储喷到屏幕上,这似乎就是你得到的。

要从转储文件中恢复,请将其通过管道传输到 Postgres 命令行工具psql

psql dbname < dumpfile.sql
Run Code Online (Sandbox Code Playgroud)

另请参阅有关备份和恢复的 Postgres 文档