12

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

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

是否有将打印此 URL 的命令?

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

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

感谢您的建议。

4

2 回答 2

12

格式似乎是

postgres://username:password@host/database

您的数据库名称中有一个/,并且(显然)postgres 将接受/数据库名称,因此您需要使用

postgres:///db/database-name

或者

postgres:///db%2Fdatabase-name

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

于 2012-05-17T09:38:35.877 回答
0

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

#! script/rails runner

到脚本的第一行,然后使用以下命令使其可执行:

chmod +x myscript

然后你可以简单地运行它

./myscript

它可以像你的控制器一样使用你的模型类并在rails中查看代码。那么就不需要手动访问数据库了。

于 2012-05-17T09:26:55.000 回答