Что такое база данных посева в Laravel?

Я использую Laravel framework, и недавно мне сообщили, что есть что-то с именем database seeding которая производит поддельные набора тестов. Правильно ли я понимаю?

Ну это странно. Как это работает? Как он знает, какие данные мне нужны в столбце X базы данных? И как она его генерирует?

кроме того, я не могу сделать семя моего реального набора данных (что-то вроде экспорта)? Знаешь, я не очень хорошо знаю английский, вот почему я не могу понять концепцию семена в поле базы данных.

2 ответов


обычно вы используете модель фабрики и Факер для создания фальшивых данных (с отношениями и т. д.) Для разработки и тестирования вашего приложения.

Если вы хотите засеять реальные данные, просто используйте команды для импорта дампа. Или, если ваши данные что-то вроде таблицы со странами, создайте сеялку, которая вставляет реальные данные без использования faker или model factory.

кроме того, вы можете использовать пакета создать сеялку из реального данные.

вы можете ознакомиться документы по посеву.


да, 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 ваша база данных заполняется некоторыми случайными записями.

вы можете найти этот пакет внутри под 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;

надеюсь, что это помогает!