Git推送供应商文件Laravel

时间:2017-09-16 10:28:46

标签: git laravel heroku

我想在heroku上部署我的项目。我安装了所有内容,并尝试运行数据库种子命令,这给了我Faker工厂不包含的错误。检查了我的gitignore文件,发现该供应商文件夹被忽略了。

推送供应商文件夹是一种好习惯吗?或者我怎么能解决这个问题?

2 个答案:

答案 0 :(得分:2)

通过composer install在Heroku上运行heroku run并不是一个好主意。 Heroku's filesystem is ephemeral。你写的任何东西(例如,安装到vendor/的库)都会在你的dyno重新启动时丢失。这happens frequently

正确的解决方案是确保您的composer.jsoncomposer.lock准确,最新并提交到您的存储库。如果你需要Heroku上的faker,它应该是require d,而不是require-devHeroku will run composer install automatically as part of the deploy process

除了短暂的文件系统问题之外,这也意味着vendor/将成为已编译的应用程序slug的一部分,确保供应商文件在每个dyno上都可用,如果您扩展到一个dyno。

答案 1 :(得分:0)

打开heroku命令行

heroku run composer install

然后heroku run php artisan migrate设置表格

然后heroku run php artisan db:seed播种数据库

如果您遇到任何数据库错误或迁移,请尝试执行php artisan migrate:reset,然后php artisan migrate

另外,请检查您的composer.json文件,并确保"fzaninotto/faker"下有require。如果您只在require-dev下使用它,则在生产部署时不会安装它,除非您使用了开发标记heroku run composer install --dev

请参阅Deployment on Laravel Forge throwing faker not found Exception

为了回答你的问题,通常最好忽略供应商文件夹并使用composer来安装依赖项,因此gitignore。