問題タブ [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.

0 投票する
1 に答える
914 参照

php - Faker for Laravel Seeder

というusers名前のテーブルと 1 対多の関係にあるテーブルがありますvideos。データの整合性を失うことなく、2 つのテーブルをシードしたいと考えています。これは私が以下にしたことです:

だから今私がしなければならないのは、VideoTableSeeder私が望む量を作成して実行することだけです. 自分の扱い方が下手な気がするので、もっといい方法を知りたいです。特に、動画は同じ量ではなくユーザー数を増やしたいと思っています。私が行ったものでは、それらはすべて同じ量になります。

0 投票する
0 に答える
691 参照

php - Laravel 5 - php artisan db:seed を使用している場合はテーブルをシードしませんが、php artisan db:seed --class を使用している場合は正常に動作します

入力しましphp artisan db:seedたが、CountriesRetailerSeeder のシードをスキップします。

手動で行うとシードされます。

php artisan db:seed --class=CountriesRetailerSeeder

php artisan db:seedどうすれば他のシーダーと一緒に実行できますか?

これが私のCountriesRetailerSeederのコードです

これらの 2000 行のデータすべてがcsv ファイルからのものであることに注意してください。

0 投票する
3 に答える
304 参照

laravel - Laravel Carbon の日付が Seeder で変更されない

Laravel Seeder で、Faker生成された日付を取り、それを Carbon に変換してから、わずか数時間離れた 2 つの日付を取得して 4 時間のセッションを表そうとしています。例えば、 Start Date: 03/13/2016 12:00PM
End Date: 03/13/2016 5:00PM

以下は私が着陸したものですが、変数$start$end変数は常に同じです。

0 投票する
3 に答える
4724 参照

laravel-5 - laravelモデルファクトリーシードは既存のものから生成します

外部キーを使用してテーブルをシードしようとしていますが、既存のものからランダムに値を取得するようにモデルに指示する方法に行き詰まっています。

モデルファクトリー

ベンダーテーブルシーダー

DeviceTableSeeder

データシーダー

Device テーブルの前に Vendor テーブルをシードし、既存のベンダーからランダムなベンダー ID を入力したいと考えています。

しかし、私は得ています

factory::App\Vendor挿入がベンダー列の文字列として挿入しようとしているようです。既存のベンダーから引き抜く方法を見つけようとしています。

0 投票する
2 に答える
1731 参照

database - laravel の移行とシードを使用してデータベース データの変更を適切に処理する方法

データベースの初期スキーマを作成する移行ファイルと、初期スキーマにランダム データとセット タイプを設定するシード ファイルがあります。

移行とシードについての私の理解では、新しいチームメンバーが参加するたびに、それらを実行するだけで、すべてのデータベースの変更と製品が機能するために必要なデータに追いつくことができます。さらに、stg とシードに変更を適用できます。移行ファイルを実行して prod を実行します。

しかし、私のプロジェクトが進むにつれて、新しいタイプのデータが出現し、それらを適用する唯一の方法は、データベースへの挿入を実行する移行を作成することでした。

私が抱えている問題は、職人が移行とシードを処理する方法は、最初にすべての移行を実行し、次にすべてのシードを実行することであり、移行の順序を指定する方法がないように思われることです。実行する必要があります。したがって、migrate:refresh --seedを実行すると、シードが自身のデータを挿入する前に新しいデータを挿入する最新の移行が適用されるため、エラーが発生します (シードに挿入されたタイプに依存する場合とそうでない場合があります)。 .

私たちが試みた 1 つの解決策は、シードも更新し、データを挿入する移行で変更を適用する前に確認することですが、これは維持するのが非常に面倒になりました。

このシナリオでの移行とシードの予想される用途は何ですか?

更新 より明確にするために: ユーザーを作成するための移行があるとしましょう: ユーザー:{id, name, type} そして、ユーザーを作成するためのシードがあります。

私は両方を実行し、多数のユーザーを含む users テーブルを持っています。

時間が経ち、user_types 用のテーブルが必要であると判断しました。移行が作成され、新しいテーブルが作成され、新しいユーザー タイプのデータが取り込まれ、現在の user.type が user.type_id に一致するように更新されます。

開発者は移行を実行し、データベースをすべて最新の状態にしています。

新しい開発者がチームに加わります。彼は移行を実行します。それから種。壊れます。

ここで、シードを更新して最新のものに一致させると、user_types テーブルの重複データに遭遇します。これを回避するには、データがない場合は実行しないように、移行に何らかの防御コードを用意し、データがある場合は更新する必要があります。

問題は、これが移行を使用する正しい方法ですか? シードを再実行することなく、データの変更をすべての開発者にプッシュするにはどうすればよいでしょうか?

0 投票する
1 に答える
1712 参照

php - パッケージ内のLaravel 5.2データベースシード?

パッケージを作成していて、その中に db シードを入れたいと思っています。これらのシードが行うことは、既存のテーブルにいくつかの新しい行を追加することだけです。パッケージのアンインストール時にこれらの行を削除する「unseed」オプションも必要です。

これについてどうすればよいかわかりませんか?ベストプラクティスとは?

ありがとう

0 投票する
15 に答える
73338 参照

php - Laravel 5.2:名前の工場を見つけることができません[デフォルト]

これを使用するときにデータベースをシードしたい

データベースに3人のユーザーを追加しますが、これを使用すると

エラーを表示

[InvalidArgumentException]
[デフォルト] [app\Comment] という名前のファクトリが見つかりません。