part_os
@part_os
Сложное в простом

Как в созданную БД, закинуть схему из дампа?

Подскажите как заполнить новую созданную базу дампом, или есть какой то иной способ?
есть файл с дампом, создаю пустую базу и хочу схему загрузить. вот мой способ:
$dbName = 'ec'.$tenantCreate->id;
        $query = sprintf(
            "CREATE DATABASE IF NOT EXISTS %s CHARACTER SET %s COLLATE %s;",
            $dbName,
            $charset,
            $collation
        );

        $result = $connection->statement($query);

        if (!$result) {
            throw new \Exception('Не создана база данных для аккаунта ' . $tenantCreate->id);
        }

        $query = sprintf(
            "USE %s; SOURCE %s;",
            $dbName,
            __DIR__ . '/../../../../dump_scheme.sql'
        );

        $result = $connection->statement($query);


SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'SOURCE /var/www/app/Tenant/Infrastructure/Services/../../../../dump_sch' at line 1 (SQL: USE ec32; SOURCE /var/www/app/Tenant/Infrastructure/Services/../../../../dump_scheme.sql;)
  • Вопрос задан
  • 85 просмотров
Решения вопроса 1
part_os
@part_os Автор вопроса
Сложное в простом
вдруг кому пригодится, сделал вот так.

$sql_dump = File::get(__DIR__ . '/../../../../dump_scheme.sql');
$result = $connection->getPdo()->exec($sql_dump);
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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