1

我一直试图让 Dokku、Ghost 和 Postgres 一起正常工作,但我无法弄清楚我缺少什么。也许它只是 Ghost 不支持容器化的 postgres,或者(更有可能)我只是在配置中遗漏了一些东西。我当前的配置文件如下所示:

database: {
            database: {
                client: 'pg',
                connection: {
                    host     : process.env.DB_HOST,
                    user     : process.env.DB_USER,
                    password : process.env.DB_PASS,
                    database : process.env.DB_NAME,
                    port     : process.env.DB_PORT,
                    charset  : 'utf8'
                }
            },
            logging: false

我已经尝试过官方 beta Postgres 插件(https://github.com/dokku/dokku-postgres)和 Flink(https://github.com/Flink/dokku-psql-single-container)但是两者都返回连接错误。我选择了官方插件的 URL,并将主机与生成的其余 postgres 连接字符串分开,并得到“错误:您在 config.js 中的数据库配置无效。” 这与我使用 Flink 得到的相同,也就是您在上面看到的配置。

我从这里的教程中提取了这个: robmcguinness 。com/digitalocean-dokku-postgresql-and-ghost/ 用于以前的版本,但我已尽力纠正更改。

我知道我可以让 sqlite 工作,但我更希望 Postgres 支持博客,以确保我可以在需要时扩展它。如果有人注意到我错过的任何事情,请告诉我,在放弃并转向这里寻求帮助之前,我已经为此努力了几个小时。

供参考的是上述配置中这些变量的审查输出:

host     : process.env.DB_HOST (postgres),
user     : process.env.DB_USER (db_blog),
password : process.env.DB_PASS (a password),
database : process.env.DB_NAME (db_blog),
port     : process.env.DB_PORT (5432)

DB_HOST 的 postgres 的输出是因为它是数据库的容器。官方 Postgres 插件没有提供用户,所以我必须创建一个,然后我使用创建的连接字符串来获取主机信息。

提前致谢,

史蒂夫

4

1 回答 1

1

答案很简单。使用官方 Postgres 插件,您只需要拥有

database: {
            client: 'postgres',
            connection: process.env.DATABASE_URL,
            debug: false
        },

作为 config.js 中的数据库配置。对我来说,最初并不明显,我需要做的就是将客户端从 pg 更改为 postgres 以使用数据库 URL 环境变量。

于 2015-10-21T14:10:06.543 回答