Что такое база данных посева в 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;
надеюсь, что это помогает!