Laravel没有从环境文件中获取默认的DB_CONNECTION值

时间:2019-10-22 10:35:47

标签: linux laravel mongodb amazon-web-services

我在生产和开发环境中都使用了不同的mongo db。

我具有不同的连接配置,因为mongodb(生产连接名称)位于mongo atlas群集上,因此它使用dsn连接,但是mongodb1(开发连接名称)已本地安装,因此我使用主机和端口进行连接。

我想在不同的环境中使用不同的数据库连接,因此在两种情况下我在环境文件中设置的DB_CONNECTION均不同。 因为我的生产是

     DB_CONNECTION=mongodb

并为其发展

     DB_CONNECTION=mongodb1

在我的config / database.php文件中
        'default'=> env('DB_CONNECTION','mysql'),

在我拥有的连接数组中

    'mongodb' => [
        'driver' => 'mongodb',
        'dsn' => env('MONGO_DB_DSN'),
        'database' => env('MONGO_DB_DATABASE', 'uspl'),
        'username' => env('MONGO_DB_USERNAME', 'uspl'),
        'password' => env('MONGO_DB_PASSWORD', 'unfoldingskies'),
        'options' => array(
            'db' => 'uspl'
        )
    ],

    'mongodb1' => [
        'driver' => 'mongodb',
        'host' => env('MONGO_DB_HOST', 'localhost'),
        'port' => env('MONGO_DB_PORT', 27017),
        'database' => env('MONGO_DB_DATABASE'),
        'options' => []
    ],

我的开发环境出现错误->     未配置数据库[mongodb]。在文件中
 /var/www/html/devBackend/vendor/laravel/framework/src/Illuminate/Database/DatabaseManager.php,第152行

我尝试过php artisan config:clear,cache:clear,composer dump-autoload,但是没有任何作用

1 个答案:

答案 0 :(得分:0)

Laravel不直接支持MongoDB,因此您需要使用第3方软件包才能使用它。

As of this writing Laravel has the following database drivers:

  • MySQL 5.6+(版本策略)
  • PostgreSQL 9.4+(版本策略)
  • SQLite 3.8.8 +
  • SQL Server 2017+(版本策略)

在网上快速搜索后,我得到了this 3rd party package.

  

Laravel MongoDB

     

使用支持MongoDB的Eloquent模型和查询构建器,使用   原始的Laravel API。该库扩展了原始的Laravel   类,因此它使用完全相同的方法。