Laravel 5.2数据库连接不起作用

时间:2017-07-13 07:51:13

标签: php database laravel laravel-5 laravel-5.2

我有laravel的问题。

我与测试数据库有联系,但是当我更改生产数据库的信息时,它不起作用。

迁移始终在测试数据库上迁移,而不是生产...

如果您知道在config目录中除了database.php之外还有其他什么要改变,它会对我有所帮助!

谢谢!

(对不起我的英文)

2 个答案:

答案 0 :(得分:2)

实际上你应该为此目的使用.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,如果未设置或null,则从配置文件中获取'mysql',这是在该文件中的config connections数组中定义的mysql(数据库) .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
  

推荐的方法是即使您发布配置也使用.env文件   file.so你可以在版本控制中忽略它。

答案 1 :(得分:0)

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

希望它有用。