如何解决Dokku Postgres 导入/导出问题
我使用 dokku postgres:export dbname
导出了一个数据库,然后使用 dokku postgres:import dbname
将其导入到另一个实例。在新实例上运行的应用程序无法正确连接到新导入的数据库。它正在连接到数据库本身,但数据不在那里。我输入连接到两个实例。运行 \l
两者是相同的。但是,当我运行 \dt
时,区别就在这里。
实际结果
// On the new instance
=# \dt
List of relations
Schema | Name | Type | Owner
--------+------------------------+-------+----------
public | document | table | postgres
...
// On the original instance
=# \dt
List of relations
Schema | Name | Type | Owner
--------+------------------------+-------+----------
dbname | document | table | postgres
...
数据被移动了,但它是公共模式(我认为)。运行选择查询也会给我不同的结果。
// Original machine
SELECT * FROM document;
// Returns the data
SELECT * FROM dbname.document;
// Also returns the data
// New machine
SELECT * FROM document;
// Empty result
SELECT * FROM dbname.document;
// Returns the data
预期结果
我想我希望从一个数据库导出并导入到另一个具有相同名称的实例会产生几乎相同的实例。这里的任何帮助都会很棒。应用程序中的其他一切都运行良好,它连接到数据库,但不返回任何数据。
解决方法
如果有人遇到这个问题,我通过运行 dokku postgres:connect dbname
并将 search_path 从 "$user",public
更改为 dbname,public
连接到 postgres 实例来解决这个问题。它现在有效。但是我觉得这不是最好的解决方案。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。