@springimport

Как в Yii2 вставлять базовые данные в базу?

Нужно внести начальные данные в базу. В yii есть миграции, но они скорее для структурных изменений.

Есть идея создать контроллер и компонент в консольном приложении. Какие есть пути реализации?
  • Вопрос задан
  • 2228 просмотров
Решения вопроса 4
@karminski
Senior React.JS Developer
Всё-таки, в миграциях Yii 2.0 есть методы для вставки данных, например
$this->insert(...);
$this->batchInsert(...);
Ответ написан
Комментировать
Посмотрите в сторону Faker
https://github.com/fzaninotto/Faker
Библиотека для генерации тестовых данных.
Для генерации можно использовать те же миграции. В up методе создаете тестовые данные, в down методе их стираете
Ответ написан
slo_nik
@slo_nik Куратор тега Yii
Добрый вечер.

Есть идея создать контроллер и компонент в консольном приложении.


Так за чем остановка? Делайте.
Но миграцию всё равно создайте, миграция может только создавать или удалять таблицу/поле таблицы, а может и сразу данные записать.
Например так

public function up()
    {

         $this->createTable('{{%country}}', [

            'id' => $this->primaryKey(),
            'name' => $this->string()->notNull
         ]);

         $this->batchInsert('{{%country}}', ['name'], [
                                                        ['Абхазия'],
                                                        ['Австрия'],
                                                        ['Андора'],
                                                        ['Аргентина'],
                                                        ['Болгария'],
                                                        ['Бразилия'],
                                                      ]
                           );

    }


Можно без записи в базу данных, просто создать таблицу, а для заполнения написать консольный скрипт, через который можно будет вносить новые данные в базу обходясь без crud.

По этой ссылке Вы сможете, на примере создания аккаунта пользователя, познакомиться с консольным управлением (в конце статьи).
Ответ написан
mitaichik
@mitaichik
Создаешь дамп базы изначальной. Ложишь в файл куда-нить, делаешь миграцию которая выполняет этот файл.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы