php - CodeIgniter 4 - .env 文件的多个数据库问题
问题描述
我正在使用 CodeIgniter 4.0.3。我已经composer
通过以下方式安装了它:
composer create-project codeigniter4/framework
在作曲家项目创建完成后出现一个错误(Script bash admin/setup.sh handling the post-update-cmd event returned with error code 127
--- 在 Windows 10 上运行),但通过编辑composer.json
和删除bash admin/setup.sh
指令迅速解决了它
我已经成功地跟进了本教程,之后,我决定进行一些更改以使其更类似于我的 Web 应用程序要求,例如添加多个数据库。
从文档(此处和此处)开始,我读到我必须修改我的.env
文件。所以,这是原来的
# ORIGINAL .env
database.default.hostname = localhost
database.default.database = ci4
database.default.username = root
database.default.password =
database.default.DBDriver = MySQLi
我想做类似的事情:
# MODIFIED .env
database.primary.hostname = localhost
database.primary.database = ci4primary
database.primary.username = root
database.primary.password =
database.primary.DBDriver = MySQLi
database.secondary.hostname = localhost
database.secondary.database = ci4secondary
database.secondary.username = root
database.secondary.password =
database.secondary.DBDriver = MySQLi
接下来,在我的模型中,我通过以下方式调用数据库进行连接:
use Config\Database;
...
$dbPrimary = Database::connect('primary');
$dbSecondary = Database::connect('secondary');
当我运行该应用程序时,我收到以下错误:
InvalidArgumentException primary is not a valid database connection group
我不知道还能做什么,我尝试了.env
文件的各种编辑,尝试调试Config
类(我认为它不加载primary
也不加载secondary
子键 --- 我也不知道如何将类更改为从我的环境文件中读取它们)。
快速清单:
env
文件已移至.env
ci4primary
和数据库都ci4secondary
存在并且有适当的数据表- 数据库凭证没问题
- CI环境设置为开发
解决方案
文件中的数据库连接组.env
也必须存在于app/Config/Database.php
文件中。默认情况下,仅定义default
和tests
连接组。
推荐阅读
- design-patterns - 状态机设计模式
- ssl - Kubernetes Pod之间的TLS通信(更轻量级的解决方案)
- javascript - process.stdin.setRawMode(true) 不是函数
- angular - Angular 9 - 如何在运行时选择子组件?
- powerbi - Power BI 平均每周
- python - “python setup.py bdist”在“compiler_flags”上出现错误
- mongodb - MongoDB - 格式响应
- r - 自动预缓存 Shiny renderCachedPlot
- javascript - 我想在电子 js 中为关于应用程序(对于 windows)创建自定义子窗口
- r - 使用 dplyr expand 获取数据中存在的变量组合?