我需要在Laravel的php artisan migrate
命令中添加一个环境变量,以便与docker一起使用,例如:
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 :(得分: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
这也可以让你免费获得一些标签。
答案 1 :(得分:0)
artisan() {
env DB_HOST=127.0.0.1 \
php artisan "${@}"
}
Laravel + Docker用户的通用函数可以灵活地更新环境变量,以便与artisan
外部docker容器一起使用。
感谢@ glenn-jackman指出我正确的方向!