Laravel 5.2 数据库连接不工作

Laravel 5.2 database connection don't work

我对 laravel 有疑问。

我有一个连接到测试数据库,它可以工作,但是当我更改生产数据库的信息时,它就不能工作。

迁移总是在测试数据库而不是生产数据库上迁移...

如果您知道配置目录中除了 database.php 之外是否还有其他需要更改的内容,它会对我有所帮助!

谢谢!

(对不起我的英语)

实际上,您应该为此目的使用 .env 文件。

这是在 .env 中为生产设置的示例值

APP_ENV=production
APP_DEBUG=false

DB_CONNECTION=mysql
DB_HOST=localhost
DB_DATABASE=somedatabasename
DB_USERNAME=app_user
DB_PASSWORD=jdfnfjdfae126

工作原理

假设 config/database.php 具有以下值

'default' => env('DB_CONNECTION', 'mysql'),

这意味着首先检查 .env 中设置的环境变量 DB_CONNECTION,如果未设置或为空,则从配置文件中获取 'mysql',即在中定义的 mysql在该文件中配置连接数组(database.php)

编辑

正如您提到的,您正在使用 oracle 驱动程序。我想当你 运行

php artisan vendor:publish --tag=oracle

配置文件夹中将发布一个配置文件。如果配置文件未发布,程序包将自动使用在您的 .env 文件数据库配置中声明的内容。

这个文件config/oracle.php

<?php
return [
    'oracle' => [
        'driver'        => 'oracle',
        'tns'           => env('DB_TNS', ''),
        'host'          => env('DB_HOST', ''),
        'port'          => env('DB_PORT', '1521'),
        'database'      => env('DB_DATABASE', ''),
        'username'      => env('DB_USERNAME', ''),
        'password'      => env('DB_PASSWORD', ''),
        'charset'       => env('DB_CHARSET', 'AL32UTF8'),
        'prefix'        => env('DB_PREFIX', ''),
        'prefix_schema' => env('DB_SCHEMA_PREFIX', ''),
    ],
];

同样,您可以在此处更新值或直接在 .env 文件中提及它。假设您的数据库名称是 mydatabase

中的值

数组将是

'database'      => env('DB_DATABASE', 'mydatabase'),

如果在 .env 文件中提到,它将是

DB_DATABASE=mydatabase

Recommended way is to use .env file even though you publish the config file.so that you can ignore it in version control.

您必须编辑 .env 文件,这是具有连接数据库配置的文件。

希望有用。