Как импортировать выборочно таблицы из базы данных в другую базу данных

Как импортировать таблицы из одной базы данных в другую не вручную, как импортировать данные из таблицы выборочно, не импортируя к примеру значения полей
Драсте. Суть вопроса в том что есть несколько сайтов, функционал я добавляю только на одном, другие сайты получают обновления путем синхронизации чанков из PhpStorm (они файловые), а вот с TV полями, которые я добавляю в админке, обновление происходит через базу данных, т.е. я копирую нужные таблицы к примеру в случае с TV полями это
_site_categories //категории которые присваиваются tv полям, они же вкладки в TV полях ресурса
_site_tmplvars — //параметры того или иного поля.
_site_tmplvar_access —// политика доступа того или иного поля.
_site_tmplvar_contentvalues —// контентное содержание доп полей
_site_tmplvar_templates —// шаблоны для которых доступно то или иное доп поле.
_site_tmplvar_contentvalues не берем, т.к. у нас значение полей на сайтах разное.

с TV более менее все понятно, хотя и крайне не удобно делать все ручками, а вот проблема возникла с clientConfig, там всего пара таблиц, и одна из них содержит и имена полей и значения, а значения этих полей для каждого сайта уникальны.
О sql запросах представление имею, но написать не смогу под свои нужды, возможно есть какие то программы где можно в графическом интерфейсе все сделать? Кто как решает подобные вопросы, поделитесь. Если нет ни каких вменяемых и удобных программ, то тогда конечно буду sql курить как try разработчик))
Посоветуйте куда копать пжлст =)
Max
Max
29 января 2022, 18:42
modx.pro
1
834
0

Комментарии: 2

vectorserver
14 февраля 2022, 12:37
1
0
Я использовал в свое время, для синхронизации товаров, точно не помню, вот накидал на коленке.
Работает :)

Пример:
<?php
//Файл дампа времменый
$dump = __DIR__ . "/test_.sql";

//Экспорт из бд №1 таблицы modx_users, modx_user_group_roles
$export_db = exportDatabase('localhost', 'root', '', 'modx', array('modx_users', 'modx_user_group_roles'), $dump);

//Импорт в бд №2
$import_db = importDatabase('localhost', 'root', '', 'remote_modx', $dump);

function importDatabase($host, $user, $password, $database, $backupFilePath)
{

    $password = ($password) ? "-p$password" : "";
    $cmd = "mysql -u {$user} {$password} {$database} < $backupFilePath";
    return exec($cmd) === 0;
}

function exportDatabase($host, $user, $password, $database, $tables, $targetFilePath)
{

    $cmd = "mysqldump --host {$host} --user {$user} ";
    if ($password) {
        $cmd .= " --password {$password} ";
    }
    $cmd .= " {$database} ";

    if ($tables) {
        $cmd .= implode(" ", $tables);
    }

    $cmd .= " > {$targetFilePath}";

    return exec($cmd) === 0;
}
    Max
    Max
    17 марта 2022, 15:44
    0
    Спасибо, почему то уведомление не пришло что мне ответили в топике, случайно наткнулся)))
    Спасибо за скрипт, смысл понял. Пока что пользуюсь SQL Manager, он идет в комплекте с OpenServer, таблицы просматриваю вручную, что где находится, наборы импортируемых данных каждый раз разные, поэтому о скрипт пока не удобен будет. От Client Config пришлось отказаться, там поля и их значение в одной таблице, при импорте все заменяется, не удобно, я просто создал стандартны MODX скрытый от других пользователей ресурс, и по его id беру все настройки, ну и соответственно цепляю к его шаблону TV поля с настройками сайта, решение пока себя оправдывает, все переносится между сайтами, обновляю на данный момент 4 сайта, вручную импортируя нужные мне поля с заменой, ну а файлами PHPStorm занимается, тоже вполне успешно))
    Спасибо за ответ!)
    Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
    2