我应该在composer.json中将php artisan seed命令放在哪里?
我正在尝试在我的Laravel应用程序中运行我应该在composer.json中将php artisan seed命令放在哪里?,php,laravel,composer-php,Php,Laravel,Composer Php,我正在尝试在我的Laravel应用程序中运行phpArtisanDB:seed,以便它在部署时运行(使用竹子) 它应该服从哪个命令 我目前有: "post-create-project-cmd": [ "php artisan key:generate" "php artisan db:seed --force" ] 但它不起作用。我想我遗漏了一些东西,因为关于这一点似乎没有太多问题。试试这个: "post-create-project-cmd": [ "php art
phpArtisanDB:seed
,以便它在部署时运行(使用竹子)
它应该服从哪个命令
我目前有:
"post-create-project-cmd": [
"php artisan key:generate"
"php artisan db:seed --force"
]
但它不起作用。我想我遗漏了一些东西,因为关于这一点似乎没有太多问题。试试这个:
"post-create-project-cmd": [
"php artisan key:generate"
"php artisan migrate --seed"
]
您需要在运行种子之前进行迁移(首先创建表)
“php artisan migrate--seed”
将装箱表格并运行种子(如果有的话)。Composer在这些事件中:
- 安装前后
安装
- 更新前后
更新
- 前后
状态
- 存档前后
- 卸载自动加载器之前和之后
- 在
创建项目中安装根包后
- 在
创建项目之后
create project
只能在从头开始新项目时调用。对于你的问题,这不太可能。您已经有了一个正在工作的项目,create project
,如果它被调用的话,它是很久以前的事了,或者您甚至可能是从composer require laravel/something
开始的
post create project cmd是错误的钩子,您不是在用竹子调用composer create project
,是吗
唯一可以应用的挂钩是在调用composer install
时调用的挂钩。但您不应该将创建环境键附加到此命令,因为它将始终运行—这似乎不是一个好主意:
首次创建Laravel应用程序时,会自动调用key:generate
所以它应该已经为您设置好了
如果通过再次执行该命令来更改密码,请注意使用Hash::make()保存的密码将不再有效
我无法决定是否每次运行composer安装时对数据库进行种子设定是一个好主意,但听起来似乎不是这样
你所拥有的是一个负责处理你的项目的竹服务器。您应该将所需的每个脚本添加到竹作业中,以初始化一个环境,您可以在其中执行一些操作,例如运行测试,甚至部署到生产环境。但这不属于Composer的范围,您不应该尝试将其用于此任务
部署到生产环境使用Composer完成一个步骤:获取依赖项并创建自动加载器。部署通常做更多的事情,因此它是一个脚本,在适当的时候调用composer install
。此脚本还应检查是否应创建密钥或为数据库种子。我本以为这肯定会起作用,但它没有起作用。我确实需要migrate命令,但没有使用任何命令。我尝试了您的方法,并结合使用了“php artisan migrate--force”
和“php artisan db:seed--force”
,但都没有成功。非常感谢您给出了完整的答案。我知道我错过了一些重要的事情。我不是安排竹子工作的人,这没用。我必须找出如何将seed命令添加到该作业中。