我有laravel的问题。
我与测试数据库有联系,但是当我更改生产数据库的信息时,它不起作用。
迁移始终在测试数据库上迁移,而不是生产...
如果您知道在config目录中除了database.php之外还有其他什么要改变,它会对我有所帮助!
谢谢!
(对不起我的英文)
答案 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文件,这是具有连接数据库配置的文件。
希望它有用。