我在postgres数据库上运行了一个Rails应用程序。我正在设置在数据库上运行的后台任务队列,我需要指定数据库URL。
我尝试过的各种排列,并期望全部返回FATAL: database "database-name" does not exist
。
是否有打印此URL的命令?
或者,如果我的database.yml看起来像这样,那么URL应该是什么样的
development:
adapter: postgresql
encoding: unicode
database: db/database-name
感谢您的建议。
答案 0 :(得分:12)
格式似乎是
postgres://username:password@host/database
您的数据库名称中有/
,并且(显然)postgres将接受数据库名称中的/
,因此您需要使用
postgres:///db/database-name
或
postgres:///db%2Fdatabase-name
随意取出数据库名称的db/
部分 - 仅保证像SQLite这样的数据库将数据库存储在本地文件中并需要文件名。
答案 1 :(得分:0)
不确定您是如何尝试访问数据库的,但如果您尝试创建使用与rails相同的数据库但单独运行的脚本,请考虑使用在rails中运行的脚本。在unix / linux中,如果你添加这一行:
#! script/rails runner
到脚本的第一行,然后使用:
使其可执行chmod +x myscript
然后您只需使用
运行它./myscript
它可以像控制器一样使用模型类,并在rails中查看代码。然后无需手动访问数据库。