2017-09-16 4 views
0

私はherokuにプロジェクトを展開したいと思っています。私はすべてをインストールし、Fakerの工場が含まれていないというエラーを与えるデータベースシードコマンドを実行しようとしました。私のgitignoreファイルをチェックして、ベンダーのフォルダが無視されているのを見ました。Git pushing vendor files Laravel

ベンダーフォルダをプッシュするのは良い方法ですか?それ以外はどうすればこの問題を解決できますか?

+0

ベンダーファイルをプッシュすることはお勧めできません。 NodeJSプロジェクトでは、通常、プロジェクトをビルドしてデプロイするherokuスクリプトがあります。 **私はLaravel **にはあまり慣れていませんが、これはあなたがすべきことと同じかもしれません。 – Baruch

+0

それはgitignoreの一部なので、それはプッシュしません。ベンダーのフォルダをプッシュする必要はありません。あなたのレポを引っ張った後、「作曲者の更新」はすべてのあなたのベンダーが元に戻すようにします。 – Michel

+0

以下のコマンドを実行したかどうかはわかりません:inline 'git add。 ; git commit; git push herokuマスター; herokuはコンポーザーのアップデートを実行します--dev; herokuはphp artisan db:seedを実行します。それでも私には同じエラーが表示されます。 – zerociudo

答えて

2

経由でHerokuでcomposer installを実行することはお勧めできません。 Heroku's filesystem is ephemeral。あなたが書き込むもの(例えば、vendor/にインストールされたライブラリ)は、次にdynoを再起動するときに失われます。これはhappens frequentlyです。

適切な解決策は、composer.jsoncomposer.lockが正確で最新のものであり、リポジトリにコミットされていることを確認することです。ヘロクでフェイカーが必要な場合は、require dでなければなりません。require-devではありません。 Heroku will run composer install automatically as part of the deploy process

一時ファイルシステムの問題とは別に、vendor/がコンパイルされたアプリケーションslugの一部となり、ベンダーファイルがすべてのdynoで利用できることを保証します。

0

オープンHerokuのコマンドライン

テーブルその後、

heroku run php artisan db:seedデシベル

にシードする設定に続いheroku run composer install

heroku run php artisan migrateを行い、あなたは任意のデータベース・エラーを取得したり、移行するときに、やってみた場合php artisan migrate:reset次にphp artisan migrate

また、composer.jsonファイルを確認し、"fzaninotto/faker"requireになっていることを確認してください。あなただけがheroku run composer install --dev

Deployment on Laravel Forge throwing faker not found Exception

を参照し、また、あなたの質問に答えるためにDEVフラグを使用しない限り、あなたは生産に展開するとき、それがインストールされていないrequire-devの下でそれを持っている場合は、ベンダーのフォルダを無視することが一般的に良いでしょう依存関係をインストールするためにコンポーザーを使用します。したがって、gitignoreです。

関連する問題