Заполнение базы данных

Заполнение базы данных — это простой способ добавить данные в вашу базу данных. Это особенно полезно во время разработки, когда вам нужно заполнить базу данных образцами данных, которые вы можете использовать для разработки, но не ограничивается этим. Исходные данные могут содержать статические данные, которые вы не хотите включать в миграцию, например страны или таблицы геокодирования, информацию о событиях или настройках и многое другое.

Начальные значения базы данных — это простые классы, которые должны иметь метод run () и расширять CodeIgniterDatabaseSeeder . Внутри run () класс может создавать любую необходимую ему форму данных. Имеет доступ к базе данных и подключению через $this->dbи $this->forgeсоответственно. Исходные файлы должны храниться в каталоге app / Database / Seeds . Имя файла должно совпадать с именем класса.

<?php namespace App\Database\Seeds;

class SimpleSeeder extends \CodeIgniter\Database\Seeder
{
        public function run()
        {
                $data = [
                        'username' => 'darth',
                        'email'    => 'darth@theempire.com'
                ];

                // Simple Queries
                $this->db->query("INSERT INTO users (username, email) VALUES(:username:, :email:)",
                        $data
                );

                // Using Query Builder
                $this->db->table('users')->insert($data);
        }
}

Сеялки для гнездования

Сидеры могут вызывать другие сидеры с помощью метода call () . Это позволяет легко организовать центральную сеялку, но при этом организовать задачи в отдельные файлы сеялки:

<?php namespace App\Database\Seeds;

class TestSeeder extends \CodeIgniter\Database\Seeder
{
        public function run()
        {
                $this->call('UserSeeder');
                $this->call('CountrySeeder');
                $this->call('JobSeeder');
        }
}

Вы также можете использовать полностью определенное имя класса в методе call () , что позволяет хранить сеялки везде, где их может найти автозагрузчик. Это отлично подходит для более модульных баз кода:

public function run()
{
        $this->call('UserSeeder');
        $this->call('My\Database\Seeds\CountrySeeder');
}

Использование сеялки

Вы можете получить копию основного сидера через класс конфигурации базы данных:

$seeder = \Config\Database::seeder();
$seeder->call('TestSeeder');

Заполнение командной строки

Вы также можете заполнить данные из командной строки как часть инструментов Migrations CLI, если вы не хотите создавать выделенный контроллер:

> php spark db:seed TestSeeder

Добавить комментарий