База данных семян Laravel из существующей базы данных


База данных семян Laravel из существующей базы данных

22.09.2016 12:17:51 Просмотров 52 Источник

теперь у меня есть новая структура моей базы данных, но мне нужно импортировать старые данные в новом формате. По этой причине я хочу использовать сеялку Laravel, но мне нужно каким-то образом подключиться к старой базе данных и сделать запросы select, а также сообщить сеялке, как поместить данные в новую базу данных.

Разве это возможно ?

У вопроса есть решение - Посмотреть?

Ответы - База данных семян Laravel из существующей базы данных / Laravel seed database from existing database

Является ответом!
phaberest

22.09.2016 01:40:27

Настройте приложение laravel на использование двух подключений mysql (как использовать несколько баз данных в Laravel), одно для новой базы данных, другое для старой.

Я буду притворяться, что это old и new.

В ваших семенах считывают из старой базы данных и записывают в новую.

$old_user = DB::connection('old')->table('users')->get();

foreach ($old_users as $user) {
     DB::connection('new')->table('users')->insert([
         'name'     => $user->name,
         'email'    => $user->email,
         'password' => $user->password,
         'old_id'   -> $user->id
         // ...
     ]);
}

Обязательно добавляйте сообщения во время заполнения, например $this->command->info('Users table seeded'); или даже индикатор выполнения (вы можете получить доступ к методам командной строки), чтобы узнать, в какой точке импорта вы находитесь.

Agidigbi Ayodeji Victor

25.04.2017 04:41:14

Попробуй: Примеры:

php artisan iseed my_table
php artisan iseed my_table,another_table

Посещение: https://github.com/orangehill/iseed

Muhammad Hasham

27.10.2020 03:46:23

Скачать пакет с сайта
В Git РЕПО : https://github.com/orangehill/iseed
затем обновите нижеприведенный файл src/Orangehill/Iseed/IseedCommand.php Добавьте ниже код в строке № 75

// update package script
    if($this->argument('tables') === null){
        $tables = Schema::getConnection()->getDoctrineSchemaManager()->listTableNames();
    }

и обновите метод getArguments в том же файле с приведенным ниже кодом

array('tables', InputArgument::OPTIONAL, 'comma separated string of table names'),

а затем запустите php artisan iseed, чтобы он получил все таблицы из вашей существующей базы данных и начал создавать сеялки для всех таблиц

Помочь в развитии проекта:
Закрыть X