私はLaravelフレームワークを使用しており、database seeding
これは、テスト用の偽のデータセットを生成します。私の理解は正しいですか?
まあそれはかなり奇妙です。使い方?データベースのX列に必要なデータの種類をどのようにして知るのですか?そして、それはどのようにそれを生成しますか?
また、実際のデータセットのシードを作成することはできません(エクスポートのようなもの)?私は英語をよく知らないので、データベースフィールドのseedの概念を理解できません。
通常、アプリの開発とテストのために(関係などの)偽のデータを作成するために model Factories および faker を使用しています。
実際のデータをシードする場合は、コマンドを使用してダンプをインポートします。または、データが国のテーブルのようなものである場合は、fakerまたはモデルファクトリを使用せずに実際のデータを挿入するシーダーを作成します。
また、 some package を使用して、実際のデータからシーダーを作成できます。
シードに関するドキュメント を読むことをお勧めします。
はい、Laravelには、- Faker
という非常に人気のある人気のパッケージが付属しています。Fakerを使用してこの例を記述し、このような10人のユーザーを生成できます。 (DatabaseSeeder.php
内):
use DB;
use Illuminate\Database\Seeder;
use Illuminate\Database\Eloquent\Model;
use Faker\Factory as Faker;
class DatabaseSeeder extends Seeder
{
/**
* Run the database seeds.
*
* @return void
*/
public function run()
{
$faker = Faker::create();
foreach (range(1,10) as $index) {
DB::table('users')->insert([
'name' => $faker->name,
'email' => $faker->email,
'password' => bcrypt('secret'),
]);
}
}
}
それだけです–
$faker->name
はランダムな人物名を生成し、$faker->email
–ランダムなメールを生成します。コマンドphp artisan db:seed
を実行すると、データベースにランダムなエントリが追加されます。
このパッケージは、composer.json
の下のrequire-dev
ファイル内にあります。
"require-dev": {
"fzaninotto/faker": "^1.6", // <------- here
"mockery/mockery": "0.9.*",
"phpunit/phpunit": "~5.0",
"symfony/css-selector": "3.1.*",
"symfony/dom-crawler": "3.1.*",
"laracasts/testdummy": "~2.0"
},
Fakerは大量のデータを生成できますが、その一部を以下に示します。
$faker->randomDigit;
$faker->numberBetween(1,100);
$faker->Word;
$faker->paragraph;
$faker->lastName;
$faker->city;
$faker->year;
$faker->domainName;
$faker->creditCardNumber;
お役に立てれば!