2014-11-03 48 views
0

在我當地工作很好。但是,當Heroku的試圖建立與下面的命令的應用程序,它放棄它,並說我在生產,即使我用--force標誌:Laravel說我在生產時我不是

php artisan migrate:refresh --seed --force 

而且我顯然沒有生產,因爲如果我是它根本無法連接到數據庫。生產數據庫設置不同。如果我通過bash控制檯進行遷移和種子就好了。

+1

您的環境檢測設置是錯誤的,然後。 – Laurence 2014-11-03 12:28:49

+0

配置您的環境文件。檢查您的機器的本地/主機名稱。嘗試終端上的「主機名」。 – klauskpm 2014-11-03 14:49:12

+0

我的環境檢測設置在我確認運行命令後,如何在遷移和播種時使用'dev'數據庫設置?如果沒有,它會因爲生產設置完全不同而窒息。 – 2014-11-04 03:58:52

回答

0

我不喜歡這樣寫道:

$env = $app->detectEnvironment(function(){ 
if(isset($_SERVER['APP_ENVIRONMENT'])) { 
    return $_SERVER['APP_ENVIRONMENT']; 
} 
return 'local'; 

});

凡APP_ENVIRONMENT在Apache虛擬主機配置設置,(這樣):

SetEnv APP_ENVIRONMENT local 

(在開發,分期和生產服務器爲APP_ENVIRONMENT值和默認返回值顯然是不同的)。即使$ _SERVER對artisan命令不可用,也可以讓工匠選取環境。

+0

這是有點我如何去做。但這不僅僅是因爲問題不在於它使用了錯誤的設置。問題是它聲稱我正在使用生產設置。 – 2014-11-04 03:59:57