postgresql - 不使用 pg_restore 和 pg_dump 填充表来传输数据库
问题描述
我绝对是数据库管理的初学者,但我正在尽我最大的努力解决这个问题,而不是太需要。我有两个 PostgreSQL 数据库,正在尝试将数据从一个迁移到另一个。我曾经pg_dump
将我的数据库转储到一个.dump
文件中:
pg_dump -Fc -U my_user -h my_host > mydb.dump
然后,我尝试将我的数据加载到 AWS RDS 上的另一个 PostgreSQL 实例中:
pg_restore -U my_other_user -h my_new_host --clean --create --no-owner mydb.dump
但是,我的新数据库中根本看不到任何数据。我确实看到了终端的输出:
ALTER TABLE ONLY public.one_table
ADD CONSTRAINT one_table_fkey FOREIGN KEY (column) REFERENCES public.another_table(id);
--
-- Name: TABLE my_table; Type: ACL; Schema: public; Owner: -
--
GRANT SELECT ON TABLE public.my_table TO "read-only";
GRANT SELECT ON SEQUENCE public.my_table_seq TO "read-only";
--
-- Name: DEFAULT PRIVILEGES FOR SEQUENCES; Type: DEFAULT ACL; Schema: -; Owner: -
--
ALTER DEFAULT PRIVILEGES FOR ROLE my_user GRANT SELECT ON SEQUENCES TO "read-only";
--
-- Name: DEFAULT PRIVILEGES FOR TABLES; Type: DEFAULT ACL; Schema: -; Owner: -
--
ALTER DEFAULT PRIVILEGES FOR ROLE my_user GRANT SELECT ON TABLES TO "read-only";
--
-- PostgreSQL database dump complete
--
我怀疑所有权存在一些问题?我的旧数据库名称和新数据库名称是否需要匹配?我检查了一个新的数据库是否在我的新 RDS 实例中以我的旧数据库名称弹出,但运气不好。
我尝试添加一个新数据库并在那里恢复:
pg_restore -U my_other_user -h my_new_host --clean --create --no-owner -d new_db mydb.dump
但是在它恢复之后,我什至无法在 Postico(我的 GUI 客户端)中看到这个新数据库。
我知道这不是太多的信息,但请让我知道我还需要提供什么来帮助弄清楚发生了什么。我绝对可以尝试逐表恢复,但我更喜欢使用pg_dump
并且pg_restore
因为我听说它更有效且工作更少(一旦我开始工作!)
解决方案
推荐阅读
- ios - 如何在应用重启或重新安装时检查订阅是否在 iOS 中处于活动状态
- python-3.x - 我的代码中的一个函数正在更改给定变量的值
- spring-boot - Gradle 无法解析 org.springframework.vault:spring-vault-core
- java - 模板解析时出错(模板:“类路径资源 [templates/index.html]”)
- r - 将数据框转换为每行列表,在 R 中每行创建一个向量
- r - ggplot中热图右侧的geom_text
- css - 我可以根据屏幕大小配置 Tailwind 自动更改吗?
- java - 单元测试只是测试方法吗?
- css - Material UI CSS 和 MuiIconButton-label
- sql - 如何处理 SQL 中不存在的特殊字符?