問題タブ [laravel-seeding]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
php - シーディングを高速化するために大量挿入を超えてlaravelシードを最適化するにはどうすればよいですか/
だから私はlaravelアプリケーションを開発しており、シードを最適化してより高速に実行できるようにしようとしています。
http://bensmith.io/speeding-up-laravel-seeders
このガイドは非常に役に立ちました。これによると、大量の挿入を行うことで SQL クエリの数を最小限に抑える必要があり、元のシード時間の 10% まで時間を短縮できます。これは素晴らしいことです。
だから今、私は次のようなことをしています:
これは魅力のように機能します。クエリを 1 つにまとめます。
しかし、ダンプを操作する他のシーダーがあり、それらはより複雑です。
ここでタクソノミーをグループに添付するときは、ネイティブの雄弁なコードを使用するため、レコードを取得して大量に挿入することは困難です。はい、いじってそれを大量に挿入する方法を見つけることもできますが、私の問題は、すべてのシードとそれらのシードのすべての部分を作成して最適化し、大量に挿入する必要があることです。
シード中に laravel が実行しようとしている DB クエリをリッスンできる方法はありますか。私はこのようなことができることを知っています:
しかし、それでも正しく実行されます。私がやりたいことは、変数でクエリをキャッチし、それをスタックに追加して、シードが終わりに近づいたときにスタック全体を実行することです。または、いくつかのシードにいくつかの ID が必要になる可能性があるため、その中間でもあります。これの良い回避策は何ですか? そして、スマートなソリューションを使用してlaravelのシードを実際に最適化する方法は?
php - laravel 5.2シードが機能しない
移行
モデル
シーダー
実行時にphp artisan db:seed
エラーが発生しないのに、データベースをチェックすると、シーダーからのデータがテーブルに挿入されないのはなぜですか? 私が見逃しているものはありますか?コードにエラーが表示されないため:(
php - Laravel シーダーはテーブル全体を上書きしますか
Laravel シーダーはテーブル全体を上書きしますか、それとも既存のコンテンツを変更せずにテーブルに追加することは可能ですか?
php - Laravel: データベース テーブルをすばやくシードする
データベース テーブルをすばやくシードする必要があります。ピボット テーブルを含み、password_resets と migrations を除く 23 個のテーブルがあります。それらのほとんどは関係に参加しています。
シードするテーブルが 23 個あるため、シーダー クラスを作成するのは簡単ではありません。外部キーを考慮して、データ型と長さに基づいてテーブルをシードするために使用できるものはありますか? 現時点では、データが意味をなさないかどうかは問題ではありません。たとえば、名前は「lasdkjflk alfsd」で埋めることができます。ただし、テーブルがそのように設計されている場合は、20 文字未満の文字列にする必要があります。
php - Factory/FakerがLaravel 5.3 DatabaseSeederで機能しない
コードを Laravel 5.2 から 5.3 に移動しました。DatabaseSeeder を実行する場合を除いて、すべて正常に動作しています。これは Laravel 5.2 では完全に機能していましたがphp artisan db:seed
、5.3 で実行しようとすると、シーダーが Faker を使用すると次のエラーが発生します。
[BadMethodCallException]
Call to undefined method Illuminate\Database\Query\Builder::lists()
すべてが正しくインストールされているようです。
コード例:
php - Laravel: 高速 PC でデータベースの Seeder が遅い理由
高速NVMe ssd、Skylake i7 6700K cpu、16GB RAMを搭載したWin10のHomestead Vagrantボックスで、典型的なLaravelバージョン5.2.23を実行しています。VirtualBox 5.0.26 r108824。VM には 4GB と 2 つの CPU が割り当てられています。ほとんどすべてがデフォルトです。
この非常に基本的なユーザー テーブル シーダーは、1000 レコードに 45 秒かかり、Laravel 4.2 を使用する前は、はるかに遅い PC でより高速なパフォーマンスが得られました。localhost サイトにアクセスすると、データが高速に読み込まれるため (index.html の 1000 レコードのユーザー テーブル全体をエコーするだけです)、VM と Win10 の間のネットワーク トラフィックの速度低下のようには見えませんが、idk.
シーダーは以下です。
Linux ベースの VM では、Windows ファイル システムの速度が異常に低下することがありますが、ここで何が起こっているのかはわかりません。どんな助けでも素晴らしいでしょう。
laravel - Laravel 5 - アプリをデプロイした後にテーブルを自動的にシードする方法は?
アプリが機能するためにテーブルにある必要がある特定のデータがあります。そうしないと、エラー メッセージが表示されます。
たとえば、あなたまたは他の誰かが私のアプリを github からプルした場合、php artisan migrate を実行してからアプリをテストしようとすると、エラーが発生します: data does not exist またはそのようなもの。これは、テーブルにデータがないためです。
したがって、理想的な解決策は実行後です。
そのテーブルでこの必要なデータも取得します。
これはどうにかしてシーダーで行う必要がありますが、方法がわかりません。誰か助けて例を挙げてもらえますか?
car_company テーブルに入れる必要があるこのデータのシードを作成する方法:
id car_company
1 フォルクスワーゲン
2 メルセデス
3 アウディ
4 ポルシェ
4行あり、実行後に挿入したい
php - Laravelの「部分的な」シード
「部分的な」シードをどのように処理するべきなのか疑問に思っています。
たとえば、アプリケーション設定用の「設定」テーブルがあり、これらは最初のシードに入力されており、後で新しい設定を追加する必要があります。新しいデータをデータベースにシードする方法はありますか、またはシードは新しいデータベースでのみ行うことができますか?
後者の場合、これを行う正しい方法は、移行を通じてデータを入力することですか?
ありがとう。