서비스 환경에서 artisan 실행시 실행 여부 묻기

Submitted by river - 등록 5 years ago - 수정 5 years ago

서비스 환경에서 migrate:refresh 같은 artisan 명령어를 실행시켜 의도치 않게 DB를 날릴 수도 있다. 이를 보완하기 위해서 다음의 코드를 artisan 앞에 추가하면 서비스 환경에서는 artisan 명령 실행시 정말로 실행할 건지를 한번 확인할 수 있다.

출처: http://www.chrisduell.com/blog/development/laravel/protecting-laravel-artisan-commands-production/

<?php
 
// Adding this to your app/artisan.php file will
// do a quick confirmation that you really do want 
// to run this command when in production environment
 
if (App::environment() === 'production') {
    echo "\033[0;33m======== WARNING ========\n";
    echo "===== IN PRODUCTION =====\n";
    echo "=========================\n";
    echo "Are you sure you want to do this?  (y/n)\033[0m ";
 
    $line = fgets(STDIN);
    if(trim($line) != 'y'){
        echo "\033[0;32mABORTING... few!\033[0m\n";
        exit;
    }
    echo "\n";
    echo "\033[0;32mThank you, continuing...\033[0m\n";
}
comments powered by Disqus