@frmax
человек

Как с помощью migration перенести пользователей из одной БД в другую?

Всем привет,

Подскажите как мне использовать 2 соединения правильно, и на простом примере объясните пожалуйста как переносить пользователей из одной БД в другую?

Вот чего я добился. Создал второй массив [db2] => соединение с др БД

Создал миграцию
class m151223_062347_data_transfer extends Migration
{
    public function setDb($db)
    {
        $this->db = $db;
    }

    public function safeUp()
    {
        $this->db = $this->setDb('db');
        $this->db2 = $this->setDb('db2');

        $shema = $this->db2->schema->getTableSchema('users');
  • Вопрос задан
  • 113 просмотров
Решения вопроса 1
vakorovin
@vakorovin
Разработчик
Для этих целей существует batchInsert
Как пример:

public function up()
    {
        Yii::$app->db->createCommand()->batchInsert('users',
            ['id', 'name', 'email', 'role'], [
            [1, 'Vanya', 'vanya@example.com', 10],
            [2, 'Kolya', 'kolya@example.com', 1],
            [3, 'Dima', 'dima@example.com', 1],
        ])->execute();
    }


Перед этим предварительно получаете массив всех пользователей, указав в запросе asArray(), и передаете этот массив в batchInsert. Ну и конечно же за вами остается отследить порядок полей.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы