私はherokuにプロジェクトを展開したいと思っています。私はすべてをインストールし、Fakerの工場が含まれていないというエラーを与えるデータベースシードコマンドを実行しようとしました。私のgitignoreファイルをチェックして、ベンダーのフォルダが無視されているのを見ました。Git pushing vendor files Laravel
ベンダーフォルダをプッシュするのは良い方法ですか?それ以外はどうすればこの問題を解決できますか?
私はherokuにプロジェクトを展開したいと思っています。私はすべてをインストールし、Fakerの工場が含まれていないというエラーを与えるデータベースシードコマンドを実行しようとしました。私のgitignoreファイルをチェックして、ベンダーのフォルダが無視されているのを見ました。Git pushing vendor files Laravel
ベンダーフォルダをプッシュするのは良い方法ですか?それ以外はどうすればこの問題を解決できますか?
経由でHerokuでcomposer install
を実行することはお勧めできません。 Heroku's filesystem is ephemeral。あなたが書き込むもの(例えば、vendor/
にインストールされたライブラリ)は、次にdynoを再起動するときに失われます。これはhappens frequentlyです。
適切な解決策は、composer.json
とcomposer.lock
が正確で最新のものであり、リポジトリにコミットされていることを確認することです。ヘロクでフェイカーが必要な場合は、require
dでなければなりません。require-dev
ではありません。 Heroku will run composer install
automatically as part of the deploy process。
一時ファイルシステムの問題とは別に、vendor/
がコンパイルされたアプリケーションslugの一部となり、ベンダーファイルがすべてのdynoで利用できることを保証します。
オープン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です。
ベンダーファイルをプッシュすることはお勧めできません。 NodeJSプロジェクトでは、通常、プロジェクトをビルドしてデプロイするherokuスクリプトがあります。 **私はLaravel **にはあまり慣れていませんが、これはあなたがすべきことと同じかもしれません。 – Baruch
それはgitignoreの一部なので、それはプッシュしません。ベンダーのフォルダをプッシュする必要はありません。あなたのレポを引っ張った後、「作曲者の更新」はすべてのあなたのベンダーが元に戻すようにします。 – Michel
以下のコマンドを実行したかどうかはわかりません:inline 'git add。 ; git commit; git push herokuマスター; herokuはコンポーザーのアップデートを実行します--dev; herokuはphp artisan db:seedを実行します。それでも私には同じエラーが表示されます。 – zerociudo