当前位置: 首页 > 知识库问答 >
问题:

如何使用Lumen 5.5.中的.env使用多个DB连接。。?

阳航
2023-03-14

我已安装Lumen 5.5并已配置。环境:

APP_ENV=local
APP_DEBUG=true
APP_KEY=2gh4RD89kWa87clEs6Vhjso3XhsFo3dR
APP_TIMEZONE=UTC

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=XXXXXX
DB_USERNAME=XXXXXX
DB_PASSWORD=XXXXXX

CACHE_DRIVER=memcached
QUEUE_DRIVER=sync

并用雄辩的语言创建了一个模型:

namespace App\Models;

use Illuminate\Database\Eloquent\Model;

class Test extends Model {
    
    public $timestamps = false;
    protected $connection = 'foo';
}

现在官方网站上没有文档来配置. env文件中的多个DB连接。我的单个连接工作得很好,但现在我需要添加另一个数据库连接详细信息。

到目前为止,我所尝试的:

>

  • 创建db配置文件为app/config/database.php,具有多个db详细信息,但我的设置不会受到影响,无论我在该文件中写入什么。它只是使用. env来获取连接详细信息。

    试图在.env文件中添加多个DB连接详细信息,如:

    DB_CONNECTION=mysqlDB_HOST=127.0.0.1DB_PORT=3306DB_DATABASE=XXXXXXDB_USERNAME=XXXXXXDB_PASSWORD=XXXXXX

    FOO_DB_CONNECTION=mysql FOO_DB_HOST=127.0.0.1 FOO_DB_PORT=3306 FOO_DB_DATABASE=FOOXXXXXX FOO_DB_USERNAME=FOOXXXXXX FOO_DB_PASSWORD=FOOXXXXXX

    DB_CONNECTION_FOO=mysqlDB_HOST_FOO=127.0.0.1DB_PORT_FOO=3306DB_DATABASE_FOO=FOOXXXXXXDB_USERNAME_FOO=FOOXXXXXXDB_PASSWORD_FOO=FOOXXXXXX

    但它一直给我这个错误:

    (1/1) InvalidArgumentException
    Database [foo] not configured.
    

    我在谷歌上找到的所有东西都试过了。

  • 共有1个答案

    曾翰飞
    2023-03-14

    我在项目中的配置方式(在Lumen 5.4中)如下所示:

    配置/database.php

    'pgsql' => [
            'driver'   => 'pgsql',
            'host'     => env('DB_HOST', 'db'),
            'port'     => env('DB_PORT', 5432),
            'database' => env('DB_DATABASE', 'service_db'),
            'username' => env('DB_USERNAME', 'service_user'),
            'password' => env('DB_PASSWORD'),
            'charset'  => env('DB_CHARSET', 'utf8'),
            'prefix'   => env('DB_PREFIX', ''),
            'schema'   => env('DB_SCHEMA', 'public'),
        ],
    
        'pgsql2' => [
            'driver'   => 'pgsql',
            'host'     => env('DB_HOST2', 'db'),
            'port'     => env('DB_PORT', 5432),
            'database' => env('DB_DATABASE2', 'service_db'),
            'username' => env('DB_USERNAME2', 'service_user'),
            'password' => env('DB_PASSWORD2'),
            'charset'  => env('DB_CHARSET', 'utf8'),
            'prefix'   => env('DB_PREFIX', ''),
            'schema'   => env('DB_SCHEMA2', 'public'),
        ],
    

    我已经创建了两个具有两个不同名称的连接,每个连接都指向db host/database/username/password/schema的不同env变量。如果这没有帮助,请发布database.php文件。

     类似资料:
    • 我有访问密钥、密钥、区域和dynamo DBendpoint,通过它们我可以连接到数据库,并且我在应用程序中保留了配置。属性文件。现在的要求是不在应用程序中保留访问密钥和密钥。属性文件并遵循AWS STS中的Web标识令牌。我已从应用程序中删除访问密钥和密码。属性文件,并具有以下配置。当我启动应用程序时,我收到以下消息 考虑定义COM类型的bean。亚马逊。服务。发电机BV2。AmazonDyna

    • 下面的代码片段是从JoinedStreams的javadoc复制的 这两个流仅基于一个键(通过< code>t =计算)进行连接 我会问我如何基于多个键进行连接,例如,one.a = two.a和

    • 我尝试使用spring batch从一个表中读取数据并写入其他表,但现在我的要求是从多个表中读取数据并写入一个文件,所以我们可以通过定义多个作业来实现这一点,但我想使用单个作业来实现,即单个读取器、单个写入器和单个处理器。 请为我提供一些关于这个场景的参考资料。

    • 问题内容: 我们正在更新我们的API,Babel的Henry Zhu提醒我注意此预设,以替换and的需要。 现在,我在理解最简单的方式来处理所有事情时遇到了困难。 我们的API使用节点v8.x和async / await,本机承诺 我要传播算子 我要管道操作员 我想要导入/导出语法 我想支持杰斯特 我喜欢babel-node如何将API转换到内存中 如果我仅向您显示配置的当前位置,这将更加容易:

    • 问题内容: 我有一个使用Java Servlet / JSP的应用程序。我的应用有多个客户端,但是每个客户端都有一个单独的数据库。所有数据库都具有相同的架构。我想确定用户登录系统时要使用哪个数据库连接。 例如,客户端A登录后,我确定客户端A属于数据库C,抓住了数据库C的连接,然后继续愉快地进行操作。 我正在将JPA与Hibernate一起用作我的JPA提供程序。是否可以使用多个持久性单元并在登录时

    • 我是Java Spring的新手,学习JDBC模板来访问数据库。现在我有3个关系表,我需要使用JDBC模板连接它们,并需要打印结果。我如何实现它。任何可行的例子都会对我有很大帮助。 谢谢