2014-06-06 50 views
22

我有一個新的安裝Laravel。當運行php artisan migrate:refresh時,我收到一條消息,說Application In Production! Do you really wish to run this command?'Laravel 4.2說我的應用程序正在生產中。我如何關閉此功能?

我知道這是4.2中的更新,但我無法弄清楚如何關閉它。 if ($this->getLaravel()->environment() == 'production')

我不知道爲什麼會認爲我是在生產中:

我的,因爲它來自Illuminate\Console\ConfirmableTrait,如果這一點,如果測試通過運行源中找到。我從來沒有設置任何環境。這是我目前仍在使用的默認環境檢測。

另外,如果設置了生產環境的主機名,是不是我的機器,我仍然有同樣的問題。

+2

對於流浪用戶 - 主機名不是你的電腦,而是虛擬機,如:vagrant-ubuntu-trusty-64。我發現它運行echo gethostname();死; –

回答

33

用於匹配給定的環境,那麼laravel會自動檢測環境(默認爲production),例如主機只要指定一個機器名:

$env = $app->detectEnvironment(array(

    //'local' => array('homestead'), 

    'local' => array('*.dev', gethostname()), 
    'production' => array('*.com', '*.net', 'www.somedomain.com') 
)); 

Read the documentationthis answer爲好。

+1

好吧,修復它。謝謝。我應該提到,儘管我將'local'改爲'development'(這與我的情況相同),因爲我得到了'訪問被拒絕'的宅基''localhost''錯誤,這很奇怪,因爲我的用戶是root ,而不是宅基地。 –

+0

有意義,歡迎:-) –

+0

你在這裏編輯哪個文件? – surfer190

7

將您的環境設置爲生產以外的東西是正確的方法。 See the accepted answer.

但是,如果你正在尋找快速修復您可以使用(在UNIXoid環境):

yes | php artisan migrate:refresh 

所有這樣做是送的「Y」甲流的程序,該程序就像你在提示時按下「y」一樣。

我覺得這比--force好一點,因爲並非所有的手工命令都支持force。

+0

管道'yes'立即取消了我的命令。 – IIllIIll

+0

@Arcrammer好奇,我想知道爲什麼。無論如何,試一試這個代碼:'$ app-> detectEnvironment(); $ env = getenv('ENV')?:'production';'然後使用這個命令行:'ENV = local php artisan migrate:refresh'。基本的觀點是L4.2需要調用detectEnvironment,但在此之後,您可以將'$ env'設置爲任何您喜歡的。 – bishop

+0

我沒有這個問題。我剛剛經過!哈哈謝謝,雖然。 – IIllIIll

0

希望這會幫助別人。我突然產生了一個問題,即我開發的網站我是建設停止連接到數據庫的說法:

PDOException SQLSTATE[HY000] [1049] Unknown database 'forge' failed 

我也收到類似的錯誤OP試圖運行artisan migrate:refresh等錯誤被指出我在當生產等等等等。

經過很多頭撓(!)我發現我的主機名值設置在/bootstrap/start.php裏是錯誤的,因爲我的主機名已經改變了我的MacBook Pro!?我不知道如何,但它從RobMacbookPro2.local改爲RobMacbookPro.local。這意味着它回落到生產從而加載與標準DB =鍛造不正確的database.php中的文件(這是錯誤的)

查閱本指南: http://laravel.com/docs/4.2/configuration

要特別注意代碼:

<?php 

$env = $app->detectEnvironment(array(

    'local' => array('your-machine-name'), 

)); 

在Mac和可能是Linux?您可以在終端中輸入# hostname來確定您的主機名。

希望能節省一些時間!

1

如果有人偶然發現這個問題,同時在lumen安裝中搜索類似的問題,我建議檢查.env文件並添加APP_ENV=local,如果它尚未在那裏。它解決了我的問題。

相關問題