2017-07-13 30 views
0

laravel有問題。Laravel 5.2數據庫連接不起作用

我有一個連接到測試數據庫的工作,但是當我更改生產數據庫的信息它不起作用。

遷移始終測試數據庫,而不是生產上遷移...

如果你知道,如果有別的東西在config目錄比database.php中改變其他,它會幫助我!

謝謝!

(對不起,我的英語)

+0

你應該改變你的。env文件,而不是數據庫配置本身 –

回答

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,則從config文件中獲取'mysql',這是在config connections數組中定義的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 

推薦的方法是使用.ENV文件即使您發佈config file.so,您可以在版本控制中忽略它。

+0

我忘了一件事情。我使用oracle數據庫。要連接oracle數據庫我使用這個包:https://github.com/yajra/laravel-oci8我不是最初使用laravel x) –

+0

@ValentinBregeon看now.hope它有幫助。如果它幫助並解決了您的問題,請標記爲正確的答案。 :) – aimme

+1

沒關係!!!!!感謝了很多@aimme我必須這樣做PHP工匠路線:緩存&& PHP工匠配置:緩存&& php工匠視圖:清除 –

0

您必須編輯.env文件,這是具有連接到數據庫的配置的文件。

希望它是有用的。