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 文件,这是具有连接数据库配置的文件。
希望有用。
我对 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 文件,这是具有连接数据库配置的文件。
希望有用。