问题 如何找到本地postgres数据库的URL路径?


我在postgres数据库上运行了一个Rails应用程序。我正在设置在数据库上运行的后台任务队列,我需要指定数据库URL。

我尝试过的各种排列,并期望全部回归 FATAL: database "database-name" does not exist

是否有打印此URL的命令?

或者,如果我的database.yml看起来像这样,URL应该是什么样子

development:
    adapter: postgresql
    encoding: unicode
    database: db/database-name

谢谢你的建议。


1499
2018-05-17 09:14


起源

经典的方法是检查postgres日志文件,只是为了看看前端尝试了什么。 - wildplasser
什么 是 PostgreSQL中数据库的名称? - a_horse_with_no_name
约翰D,但它闻起来像任何其他名字的马一样甜 - Andy Harvey


答案:


格式似乎是

postgres://username:password@host/database

你有一个 / 在您的数据库名称和(显然)postgres将接受 / 在数据库名称中,所以您需要使用其中之一

postgres:///db/database-name

要么

postgres:///db%2Fdatabase-name

随意拿出来 db/ 数据库名称的一部分 - 仅保证像SQLite这样的数据库将数据库存储在本地文件中并需要文件名。


11
2018-05-17 09:38



数据库路径是问题所在。我希望能解决这个问题,因为我已经拥有了数据库中的数据。最后我删除了,在名称中没有db重新创建,并导入了备份。完美的工作。谢谢! - Andy Harvey


不确定您是如何尝试访问数据库的,但如果您尝试创建使用与rails相同的数据库但单独运行的脚本,请考虑使用在rails中运行的脚本。在unix / linux中,如果添加以下行:

#! script/rails runner

到您的脚本的第一行,然后使其可执行:

chmod +x myscript

然后你可以简单地运行它

./myscript

它可以像控制器一样使用模型类,并在rails中查看代码。然后,无需手动访问数据库。


0
2018-05-17 09:26



谢谢迈克尔,不,我只需要数据库的连接路径。我正在尝试将queue_classic合并到我的应用程序中 github.com/ryandotsmith/queue_classic。 - Andy Harvey
我面临的问题是我的database.yml定义了路径 db/database-name 但错误是 FATAL: database "dbdatabase-name" does not exist  - 注意db之后没有斜杠分隔符。所以我正在寻找一种方法来查询和确定Rails使用的路径。有任何想法吗? - Andy Harvey