通过bash脚本运行php Doctrine命令

时间:2018-09-18 20:51:28

标签: php bash symfony scripting doctrine

我目前正在使用Symfony和Doctrine开发PHP应用程序。我现在的目标是创建一个bash脚本来构建我的数据库模式并加载夹具。我当前的脚本位于/ bin文件夹中,并具有以下内容:

#!/usr/bin/env bash

php bin/console doctrine:migrations:migrate
php bin/console doctrine:fixtures:load --purge-with-truncate

该脚本是可执行文件,当我尝试运行它(./create_de.sh)时,出现以下错误:

Could not open input file: bin/console

我试图将脚本更改为以下内容:

#!/usr/bin/env bash

php console doctrine:migrations:migrate
php console doctrine:fixtures:load --purge-with-truncate

但是我仍然遇到相同的错误,除了没有bin部分。

当我通过命令行运行脚本中的命令时,我没有任何问题。知道为什么该脚本不起作用吗?

3 个答案:

答案 0 :(得分:0)

由于脚本位于bin文件夹中,因此只需将其更改为:

SELECT team
FROM 
    (
        SELECT team, wins, penaltyyards,
            avg(penaltyyards) OVER (PARTITION BY division) as avgpenalty, 
            avg(wins) OVER (PARTITION BY division) as avgwins 
        FROM nfl.teams 
    ) averages
WHERE penaltyyards > AVGPenalty AND wins > avgwins

编辑:这里没有任何权限问题,正如其他注释所建议的那样,因为默认情况下控制台文件的权限为php ./console doctrine:migrations:migrate php ./console doctrine:fixtures:load --purge-with-truncate ,这意味着每个人都可以执行它。

答案 1 :(得分:0)

您是否尝试过(从bin/开始)dos2unix create_de.sh > create_de_new.sh,然后尝试./create_de_new.sh

答案 2 :(得分:0)

您是否检查了权限,文件bin /控制台必须具有执行权限:

类似的东西:

chmod +x bin/console