2016-12-18 1 views
4

私はLaravelフレームワークを使用しています。私は最近、テストのための偽のデータセットを生成するものがdatabase seedingという名前であることを知らされました。私の理解は正しいのですか?Laravelのデータベースシードとは何ですか?

これはかなり奇妙です。使い方?どのようなタイプのデータがデータベースのXカラムに必要なのかをどのように知っていますか?それがどのように生成されますか?

また、実際のデータセットの種を(エクスポートのようなもの)にすることはできません?ご存知のように、私は英語をよく知らないので、の概念をデータベースフィールドに理解できません。

答えて

3

通常、アプリの開発とテストのための偽のデータ(リレーションなどを含む)を作成するのに、model Factoriesfakerを使用しています。

実際のデータをシードしたい場合は、コマンドを使用してダンプをインポートしてください。または、データが国のテーブルのようなものであれば、フェイザーやモデルファクトリーを使用せずに実際のデータを挿入するシーダーを作成します。

また、some packageを使用して、実データからシーダーを作成できます。

docs on seedingをお読みください。

+0

1)私は実際のデータの種を作るとき、それがどこに保存されるのですか? 2)そしてその場合、 'php artisan migrate --seed'を使用すると、マイグレーションはリフレッシュされ、実際のデータはすべて自動的に再度挿入されますか? – stack

+0

1)シーダークラス内。または、シーダークラスはいくつかのコマンドを呼び出します(パッケージに依存します)。 2)はい。 –

5

はい、Laravelには、&という人気のあるパッケージ(Faker)が付属しています。あなたは偽物を使用して、この例を書いて、(DatabaseSeeder.php内で)このような10人のユーザーを生成できます。

それだ
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を実行した後、あなたのデータベースにはランダムなエントリがいくつか表示されます。

あなたはrequire-devの下であなたのcomposer.jsonファイル内のこのパッケージを見つけることができます。

$faker->randomDigit; 
$faker->numberBetween(1,100); 
$faker->word; 
$faker->paragraph; 
$faker->lastName; 
$faker->city; 
$faker->year; 
$faker->domainName; 
$faker->creditCardNumber; 

・ホープ、このことができます:

"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" 
}, 

を偽物には、いくつかを以下に示し、そこから大量のデータを、生成することができます!

+0

@stack - それがあなたを助けたことを知ってうれしい、ありがとう! –

関連する問題