【问题标题】:Console access to Dokku's PostgreSQL plugin?控制台访问 Dokku 的 PostgreSQL 插件?
【发布时间】:2014-05-28 10:48:42
【问题描述】:

有没有办法让控制台访问DokkuPostgreSQL plugin?在 Heroku 我会做heroku pg:psql。这在 Dokku 环境中是否可行?如果可以,如何实现?

【问题讨论】:

    标签: postgresql dokku


    【解决方案1】:

    实际上有一种方法可以直接使用dokku-pg-plugin 执行此操作。

    命令postgresql:restore <db> < dump_file.sql 连接到指定的数据库并使用提供的转储文件恢复它。如果您只是省略转储文件部分 (< dump_file.sql),则会打开一个 psql 控制台会话。

    由于postgresql:restore <db> 在语义上不是打开控制台会话的最佳方式,因此我打开了pull request 以添加命令postgresql:console <db>

    所以,在我的 PR 被合并之前,为数据库打开 psql 控制台的选项是:

    • 使用psql -h 172.17.42.1 -p <port> -U root db 手动执行此操作,其中<port>password 取自dokku postgresql:info <db> 的输出,
    • 使用语义不正确的命令dokku postgresql:restore <db>,或者
    • 使用添加命令postgresql:console <db>的插件的my forked and patched version

    编辑: dokku-pg-plugin 的所有者合并了我的拉取请求。如果你正在使用这个插件并且正在寻找一种方法来使用它来访问你的 PostgreSQL 控制台,你可能想要将它更新到最新版本。完成此操作后,您可以使用命令postgresql:console <db> 打开与指定数据库的psql 会话。

    【讨论】:

    • 是否可以使用此控制台会话以某种方式运行“CREATE EXTENSION”?我收到“提示:必须是超级用户才能创建此扩展程序”。谢谢!
    【解决方案2】:

    这适用于我在 Dokku 上运行的 Rails 应用程序:

    dokku run <app-name> rails db

    这为我创建的 PostgreSQL 容器打开了控制台(通过dokku postgresql:create <db>)。除了尝试直接连接到数据库之外,我想不出另一种方法来获取该容器中的 PostgreSQL 实例,并在您执行此操作时列出连接信息/凭据:

    dokku postgresql:info <db>

    我没有尝试过,但我怀疑它会起作用。

    【讨论】:

    • 是的,这适用于 Rails 应用程序,因为它内置并打开 Rails 数据库控制台。不过,我一直在寻找一种更通用的方法来打开psql 控制台会话。确实,您可以使用来自dokku postgresql:info <db> 的连接参数手动连接psql,但这样做很乏味。无论如何,谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-18
    • 2020-02-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多