Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 03.03.2016 16:51:05

Как при миграции создать еще и нужные строки?

В специальных таблицах есть однотипные данные неизменные.
Как при создании таблицы добавлять их автоматом?

Не в сети

#2 03.03.2016 17:00:32

Re: Как при миграции создать еще и нужные строки?

По феншую наверное  https://laravel.com/docs/5.2/seeding
Но, если очень хочется и надо немножко, то прямо в миграции вполне можно любым доступным методом

Не в сети

#3 04.03.2016 03:30:14

duster
Откуда: Мельбурн
Сообщений: 148

Re: Как при миграции создать еще и нужные строки?

Да — это сидинг, это уже включено в Laravel

php artisan migrate --seed

Не в сети

#4 04.03.2016 07:32:44

BaldaI
Откуда: Хабаровск
Сообщений: 16

Re: Как при миграции создать еще и нужные строки?

seeding сделан для наполнения БД тестовыми данными.
Если данные неизменяемые, то надо в миграции делать вставку.

Изменено BaldaI (04.03.2016 07:35:22)

Не в сети

#5 04.03.2016 08:08:37

Re: Как при миграции создать еще и нужные строки?

BaldaI пишет:

seeding сделан для наполнения БД тестовыми данными.
Если данные неизменяемые, то надо в миграции делать вставку.

Это просто наполнение, тестовые эти данные или нет, вам решать. Я склоняюсь к тому, что если надо много данных вставить, то юзать seeding
Если по паре каких-то дефолтных строк, то разместить в миграции

Не в сети

#6 04.03.2016 08:43:41

duster
Откуда: Мельбурн
Сообщений: 148

Re: Как при миграции создать еще и нужные строки?

VitalN дело говорит - сидинг это не обязательно тестовые данные, это просто стартовые данные (отсюда термин - seed).

Миграции традиционно используются для изменений структуры (схемы) БД.

Есть еще вариант сделать отдельную console команду, которая заполняет БД стартовыми данными - тоже вполне логичный вариант, лучше миграций.

Не в сети

#7 04.03.2016 13:18:51

Re: Как при миграции создать еще и нужные строки?

А так правильно?
public function up()
{
Schema::create(’whos’, function (Blueprint $table) {
$table->increments(’id’);
$table->string(’name’, 150);
$table->string(’id_name’, 2);
$table->timestamps();
});
DB::table(’whos’)->insert(
array(
array(
’name’ ⇒ ’компания мужчин’,
’id_name’ ⇒ ’mm’
),
array(
’name’ ⇒ ’мужчина’,
’id_name’ ⇒ ’m’
),
array(
’name’ ⇒ ’компания женщин’,
’id_name’ ⇒ ’ww’
),
array(
’name’ ⇒ ’женщина’,
’id_name’ ⇒ ’w’
),
array(
’name’ ⇒ ’семья’,
’id_name’ ⇒ ’f’
),
array(
’name’ ⇒ ’мужчины и женщины’,
’id_name’ ⇒ ’c’
),
array(
’name’ ⇒ ’пара’,
’id_name’ ⇒ ’p’
)
)
);
}

Не в сети

#8 05.03.2016 01:34:45

duster
Откуда: Мельбурн
Сообщений: 148

Re: Как при миграции создать еще и нужные строки?

Нет — вы это в миграции делаете
И массивы уже давно в PHP через [] записываются ;)
И имя таблицы неудачное — слово ’whos’ ничего не означает

Не в сети

Подвал раздела