2017-02-16 4 views
0
내가 좋아하는, 고정 표시기에 사용 Laravel의 php artisan migrate 명령에 환경 변수를 추가 할 필요가

포함 : 앞에 추가 명령 - 하위 명령

env DB_HOST=127.0.0.1 php artisan migrate 

나는 이런 내 .zshrc 파일에 함수를 만들어 :
function migrate() { 
    (env DB_HOST=127.0.0.1 php artisan migrate $*) 
} 

그러나 Laravel의 명령 구조의 작동 방식은 다음과 같이이다 :

migrate 
    migrate:install  Create the migration repository 
    migrate:refresh  Reset and re-run all migrations 
    migrate:reset  Rollback all database migrations 
    migrate:rollback  Rollback the last database migration 
    migrate:status  Show the status of each migration 

때문에이이 같은 명령이 작동하지 않습니다 :

migrate:refresh --seed 

나는 또한 모든 '아이'에 대한 변수를 추가 할 수있는 기능을 쓸 수있는 방법도이 명령입니까?

+0

여러 개의 env 변수를 가질 수 없습니까? 그것은 더 간단 할 수 있습니다. – user2915097

+0

올바르게 이해하면 내 .env 파일에 DB_HOST = mysql이 있어야하지만 CLI (도커 컨테이너 외부에 있음)에는 DB_HOST = 127.0.0.1이 필요합니다.이 솔루션을 탐색하는 이유는 무엇입니까 – daviestar

답변

1

나는이 작업을 수행 할 수 있도록하려는 가정 migrate refresh --seed 다음

migrate() { 
    local subcommand=$1 
    shift 
    env DB_HOST=127.0.0.1 php artisan migrate:"$subcommand" "${@}") 
} 

음, 아마도

artisan() { 
    env DB_HOST=127.0.0.1 php artisan "${@}") 
} 
for subcommand in \ 
    migrate   \ 
    migrate:install \ 
    migrate:refresh \ 
    migrate:reset \ 
    migrate:rollback \ 
    migrate:status 
do 
    alias $subcommand="artisan $subcommand" 
done 

뿐만 아니라 당신에게 무료에 대한 몇 가지 탭 완성을 얻을 것입니다 그.

+0

@daviestar , 나는 당신의 편집을 거부하기로 결정했다. 내 대답의 일부만이 당신에게 적합한 경우 자유롭게 자신의 대답을 추가하고 동의하십시오. –

0
artisan() { 
    env DB_HOST=127.0.0.1 \ 

    php artisan "${@}" 
} 

Laravel + 도커 사용자를위한 일반적인 기능은 artisan 외부 고정 표시기 용기와 함께 사용하기 위해 환경 변수를 갱신 할 수있는 유연성을 가지고 있습니다.

올바른 방향으로 나를 가리키는 @ glenn-jackman에게 감사드립니다!