我试图在我的Laravel应用程序中运行php artisan db:seed
,以便它在部署时运行(使用Bamboo。)
它应属于哪个命令?
我目前有:
"post-create-project-cmd": [
"php artisan key:generate"
"php artisan db:seed --force"
]
但它不起作用。我想我错过了一些东西,因为似乎没有多少问题。
答案 0 :(得分:2)
作曲家在这些活动中有hooks to run script:
install
update
status
archive
create-project
create-project
这些都不适用于您的情况。
只有在从头开始新项目时才应调用{p>create-project
。这不是你的问题。您已经有一个有效的项目create-project
,如果它已被调用,很久以前,或者您甚至可能已经开始使用composer require laravel/something
。
post-create-project-cmd是错误的挂钩,你没有在Bamboo中调用composer create-project
,是吗?
可能适用的唯一挂钩是在调用composer install
时调用的挂钩。但是你不应该为这个命令附加创建一个环境键,因为它总是会被运行 - 这似乎不是一个好主意:
首次创建Laravel应用程序时,会自动调用key:generate。
所以它应该已经为你设定了。
如果通过再次执行命令进行更改,请注意使用Hash :: make()保存的密码将不再有效。 Source
我无法决定每次运行composer install
时播种数据库是个好主意,但听起来并不像。
您所拥有的是具有处理项目的作业的Bamboo服务器。您应该将所有需要的脚本添加到Bamboo作业,以初始化可以执行操作的环境 - 例如运行测试,甚至部署到生产环境。但这不是Composer的范围,你不应该试图滥用它来完成这项任务。
部署到生产使用Composer只需一步:抓取依赖关系并创建自动加载器。部署通常会执行更多操作,因此它是一个在适当时调用composer install
的脚本。此脚本还应检查是否应该为数据库创建密钥或种子。
答案 1 :(得分:0)
试试这个:
"post-create-project-cmd": [
"php artisan key:generate"
"php artisan migrate --seed"
]
您需要在运行种子之前进行迁移(首先创建表格)
"php artisan migrate --seed"
将创建表格并运行种子(如果有的话)。