首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Laravel 5如何配置队列数据库驱动程序以连接到非默认数据库?

问Laravel 5如何配置队列数据库驱动程序以连接到非默认数据库?
EN

Stack Overflow用户
提问于 2016-02-21 12:11:36
回答 3查看 21.4K关注 0票数 14

在Laravel5.1中,我们可以在config/queue.php中设置队列连接配置。

代码语言:javascript
复制
QUEUE_DRIVER=database
代码语言:javascript
复制
    'database' => [
        'driver' => 'database',
        'table' => 'jobs',
        'queue' => 'default',
        'expire' => 60,
    ],

但是,它将只使用config/database.php中的默认数据库连接。

如果我有两个数据库,一个本地主机中的默认数据库mysql1,一个远程服务器中的数据库mysql2,并且队列jobs表位于远程数据库mysql2中,那么如何配置队列数据库驱动程序来使用远程mysql2数据库呢?请注意,主应用程序正在本地主机中使用默认数据库。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-05-04 09:29:17

您可以使用queue.php中的queue.php参数来设置正确的数据库连接(来自您在database.php中定义的连接)。

代码语言:javascript
复制
'database' => [
    'connection' => 'mysql2',
    'driver' => 'database',
    'table' => 'jobs',
    'queue' => 'default',
    'expire' => 60,
], 

我正在寻找同样的东西,并在源代码中找到了它。

注意:这不仅将读取来自此连接的作业(在运行队列时),而且还会将它们写入此连接(当发送新作业时)。

票数 36
EN

Stack Overflow用户

发布于 2017-10-17 16:53:28

这里最好的答案对我没有用,更不用说它不是一个与我不同的问题最好的答案。我的问题是Laravel没有缓存我的配置设置。

进入文件\config\queue.php并更改默认驱动程序后.

代码语言:javascript
复制
'default' => env('QUEUE_DRIVER', 'database'),

队列仍在同步驱动程序上运行。

然后我检查了文件..。

代码语言:javascript
复制
    \bootstrap\cache\config.php

在30号线附近我看到了这个..。

代码语言:javascript
复制
 'queue' => 
array (
'default' => 'sync', 

...but要连接到数据库,应该是.

代码语言:javascript
复制
 'queue' => 
array (
'default' => 'database',

这解决了问题..。

代码语言:javascript
复制
php artisan config:cache

运行config:cache逗号,将config.php文件重写到当前驱动程序设置。

票数 6
EN

Stack Overflow用户

发布于 2016-02-21 20:59:32

您可以在模型中设置$connection变量。请注意,这只会影响Eloquent查询,而不适用于Fluid。

代码语言:javascript
复制
class Jobs extends Eloquent {
    protected $connection = "database2"     
}

当然,这需要在您的config/database.php文件中有第二个config/database.php连接,即'database2' => [...]。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35535920

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档