Lumen框架多数据库连接配置方法

举报
Lansonli 发表于 2021/09/27 23:08:14 2021/09/27
【摘要】 Lumen作为一款API导向很浓的框架,配置极简化,默认只支持一路DB配置 然而随着业务复杂度的提高,引入多个数据库连接似乎无法避免,下面介绍一下LUMEN连接多个数据库的配置方法: 修改.env文件,增加新DB配置,如下: //DB1 配置 DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT...

Lumen作为一款API导向很浓的框架,配置极简化,默认只支持一路DB配置

然而随着业务复杂度的提高,引入多个数据库连接似乎无法避免,下面介绍一下LUMEN连接多个数据库的配置方法:

  • 修改.env文件,增加新DB配置,如下:

  
  1. //DB1 配置
  2. DB_CONNECTION=mysql
  3. DB_HOST=127.0.0.1
  4. DB_PORT=3306
  5. DB_DATABASE=dbname
  6. DB_USERNAME=dbname
  7. DB_PASSWORD=password
  8. DB_TIMEOUT=4
  9. //DB2配置
  10. DB_TEST_CONNECTION=mysql
  11. DB_TEST_HOST=127.0.0.1
  12. DB_TEST_PORT=3307
  13. DB_TEST_DATABASE=dbname2
  14. DB_TEST_USERNAME=dbname2
  15. DB_TEST_PASSWORD=password
  16. DB_TEST_TIMEOUT=4
  • 因为LUMEN在加载DB配置时,还是会默认去laravel模块下寻找相关配置文件,这时修改laravel模块下的database.php文件
    文件位置在:
    ./vendor/laravel/lumen-framework/config/database.php
    添加.env文件中新增的DB配置,如下:

 


  
  1. //默认配置
  2. 'mysql' => [
  3. 'driver' => 'mysql',
  4. 'host' => env('DB_HOST', 'localhost'),
  5. 'port' => env('DB_PORT', 3306),
  6. 'database' => env('DB_DATABASE', 'forge'),
  7. 'username' => env('DB_USERNAME', 'forge'),
  8. 'password' => env('DB_PASSWORD', ''),
  9. 'charset' => env('DB_CHARSET', 'utf8'),
  10. 'collation' => env('DB_COLLATION', 'utf8_unicode_ci'),
  11. 'prefix' => env('DB_PREFIX', ''),
  12. 'timezone' => env('DB_TIMEZONE', '+00:00'),
  13. 'strict' => env('DB_STRICT_MODE', false),
  14. ],
  15. //新增配置
  16. 'mysql_test'=>[
  17. 'driver' => 'mysql',
  18. 'host' => env('DB_TEST_HOST', 'localhost'),
  19. 'port' => env('DB_TEST_PORT', 3306),
  20. 'database' => env('DB_TEST_DATABASE', 'forge'),
  21. 'username' => env('DB_TEST_USERNAME', 'forge'),
  22. 'password' => env('DB_TEST_PASSWORD', ''),
  23. 'charset' => env('DB_CHARSET', 'utf8'),
  24. 'collation' => env('DB_COLLATION', 'utf8_unicode_ci'),
  25. 'prefix' => env('DB_PREFIX', ''),
  26. 'timezone' => env('DB_TIMEZONE', '+00:00'),
  27. 'strict' => env('DB_STRICT_MODE', false),
  28. ],
  • 在项目中调用时,直接按database.php中的做法初始化connection就行,如下:
$query = app('db')->connection("mysql_test")->select("...");
 

 

文章来源: lansonli.blog.csdn.net,作者:Lansonli,版权归原作者所有,如需转载,请联系作者。

原文链接:lansonli.blog.csdn.net/article/details/103900303

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。