2017-02-16 72 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上(这是在docker容器之外)需要'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指引我走向正确的方向!