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

标签 database macos postgresql

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

pg_dump databasename < dumpfile.sql

之后我得到:

--
-- 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
--

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

如果我输入 \l,我会得到所有的数据库。我输入 \c databasename 连接到数据库,然后输入 \dt 检查表。然而,它一直显示No relations found。相同的步骤对其他数据库完全有效(加载转储,然后连接和显示表)。此外,在加载转储后,如果我键入 \l+ 以查看每个数据库的大小,我感兴趣的数据库显示大小为 6973kb,其中转储为 272MB

关于可能是什么问题有什么建议吗?

最佳答案

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

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

psql dbname < dumpfile.sql

另见 the Postgres docs on backup and restore .

关于database - 将数据库转储加载到 postgres 数据库中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36166552/

相关文章:

sql - 为什么 null 在 WHERE 中等于整数?

mysql - Grails:在迁移/更新数据库时,MD5SUM 有何用途?

macos - 获取Apple clang版本和对应的上游LLVM版本

php - Laravel groupby min/max 过滤分组结果

ios - xCode 和权限问题

Xcode:将项目拖到工作区会在项目导航器中显示很小的 .xcodeproj 文件。怎么了?

ruby-on-rails-3 - Postgresql 使用 Rails 3 寻找错误的多对多表

postgresql - Golang 和 Postgres 的交互——每次查询都从 int64 表中减去 1

php - 什么被认为是 "best practice"用于设计一组服务 AJAX 请求的 PHP 脚本?

java - 应用程序安装时用户指定的应用程序路径