[dbAdmin] Управление таблицами БД. Релиз.
Предлагаю вашему вниманию первую версию модуля для управления таблицами базы данных. Пока функционал достаточно скромный, но разработчикам немного упростит жизнь.
Основные возможности:
— просмотр таблиц;
— переименование, очищение и удаление таблиц;
— экспорт таблиц в текстовый файл;
— поиск таблицы по имени или классу;
— выполнение sql запросов.

После моего прошлого анонса произошло важное изменение — теперь список таблиц хранится в специальной таблице, а не зачитывается из базы. Что это дает? Теперь для таблицы можно указать класс объекта MODX. А это дает возможность использовать функционал xPDO и расширяет функциональность модуля. Например, можно изменять данные в выбранной таблице, как в phpMyAdmin (пока не реализовано), сортировать столбцы, выполнять sql запрос через указание класса, искать таблицу по классу и т.д.
Единственный недостаток — необходимость поддерживать актуальность этой таблицы. Т.е. когда добавили таблицу в MySql (например, при установке какого-нибудь компонента) или удалили, нужно синхронизировать таблицу. Но думаю, это небольшая плата за удобства, которые предоставляет xPDO. Тем более, что синхронизация достаточно простая —нужно нажать кнопку «Синхронизация» когда на ней появляется желтый восклицательный знак (см. картинку). С версии 1.0.0-pl синхронизация производится автоматически.
Кстати, системные таблицы с нужными параметрами добавляются при установке компонента. Для пользовательский таблиц нужно самостоятельно указать класс и пакет. Последний нужен для xPDO.

Работать с компонентом достаточно просто и интуитивно. Если нужно выгрузить всю базу данных, нажимаем кнопку «Экспорт базы данных». Если нужно выполнить операции экспорта, очистки или удаления нескольких таблиц, работаем с меню «Массовые действия». Для работы с одной таблицей можно пользоваться кнопками из колонки «Действия».
Кстати, в этой колонке есть еще кнопка «Просмотр таблицы», которая вызывает окно с данными этой таблички. Пока только для просмотра, но в дальнейшем и с возможностью редактирования данных.
Еще одна фича компонента — выполнение sql запросов. Для этого есть отдельная вкладка SQL. Там можно писать стандартные запросы MySql. А так как у нас есть карта таблиц и классов, то возможен вот такой синтаксис:
Результат запроса показывается в нижней части пока через print_r. В дальнейшем планирую вывод в окне.
Разрешения
Для работы с компонентом пользователь должен иметь соответствующие права.
Пока все. В планах, кроме озвученного, также возможность создания таблиц.
Мне кажется компонент нужный и пригодится многим.
Проект на Github.
Версия 1.1.0.
Основные возможности:
— просмотр таблиц;
— переименование, очищение и удаление таблиц;
— экспорт таблиц в текстовый файл;
— поиск таблицы по имени или классу;
— выполнение sql запросов.

После моего прошлого анонса произошло важное изменение — теперь список таблиц хранится в специальной таблице, а не зачитывается из базы. Что это дает? Теперь для таблицы можно указать класс объекта MODX. А это дает возможность использовать функционал xPDO и расширяет функциональность модуля. Например, можно изменять данные в выбранной таблице, как в phpMyAdmin (пока не реализовано), сортировать столбцы, выполнять sql запрос через указание класса, искать таблицу по классу и т.д.
Единственный недостаток — необходимость поддерживать актуальность этой таблицы. Т.е. когда добавили таблицу в MySql (например, при установке какого-нибудь компонента) или удалили, нужно синхронизировать таблицу. Но думаю, это небольшая плата за удобства, которые предоставляет xPDO. Тем более, что синхронизация достаточно простая —
Кстати, системные таблицы с нужными параметрами добавляются при установке компонента. Для пользовательский таблиц нужно самостоятельно указать класс и пакет. Последний нужен для xPDO.

Работать с компонентом достаточно просто и интуитивно. Если нужно выгрузить всю базу данных, нажимаем кнопку «Экспорт базы данных». Если нужно выполнить операции экспорта, очистки или удаления нескольких таблиц, работаем с меню «Массовые действия». Для работы с одной таблицей можно пользоваться кнопками из колонки «Действия».
Кстати, в этой колонке есть еще кнопка «Просмотр таблицы», которая вызывает окно с данными этой таблички. Пока только для просмотра, но в дальнейшем и с возможностью редактирования данных.
Еще одна фича компонента — выполнение sql запросов. Для этого есть отдельная вкладка SQL. Там можно писать стандартные запросы MySql. А так как у нас есть карта таблиц и классов, то возможен вот такой синтаксис:
select pagetitle, uri from {modResource}Результат запроса показывается в нижней части пока через print_r. В дальнейшем планирую вывод в окне.
Разрешения
Для работы с компонентом пользователь должен иметь соответствующие права.
- tables_list — Разрешает вывод списка таблиц.
- table_view — Разрешает просмотр таблицы.
- table_save — Разрешает сохранять данные.
- table_truncate — Разрешает удалять записи из таблицы (truncate table).
- table_remove — Разрешает удалять таблицу (drop table).
- table_export — Разрешает экспорт таблицы.
- sql_query_execute — Разрешает выполнение sql запросов.
Пока все. В планах, кроме озвученного, также возможность создания таблиц.
Мне кажется компонент нужный и пригодится многим.
Проект на Github.
Дополнительная информация
Полная документация.Версия 1.1.0.
Комментарии: 18
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
Несомненно. Сергей. по описанию просто сказочный компонент получился!
Эх, времени бы побольше… столько фантазий.
Вчера у нас около дома на Москве реке битум горел… Дети визжали от эмоций… Дымища, вонища, темнотища, вертолеты, пожарные, телевидение… А когда потухло, пошли смотреть. Потом еще все новости надо обязательно посмотреть — смотри как горит, мы туда ходили…
Полдня пролетело. Какая уж тут работа… И сегодня вечером пойдем, проверим, вдруг дяди опять тушить будут. Ни секунды времени для себя. :)
Есть два sql файла, один с phpMyAdmin хостинга все норм, второй с dbAdmin экспортится с ошибкой.
этот отрезок у обоих одинаковый:
CREATE TABLE IF NOT EXISTS `modx_slideshow_slide` (
бла
бла
бла
`slide_status` set('live','archive','deleted','restore_point','TBD') DEFAULT 'TBD',
Вся запарка в поле № 8, как ее сохраняет dbAdmin, а именно там где значение live без одинарных кавычек:
(1, 1, 0, '2015-12-27 00:00:00', '2018-12-23 00:00:00', '2015-12-27 00:08:10', 1, ive, 1,
Вот с phpMyAdmin хостинга:
(1, 1, 0, '2015-12-27 00:00:00', '2018-12-23 00:00:00', '2015-12-27 08:08:10', 1, 'live', 1,
if ( is_null($rows[$i][$j]) ) {
$sql .= 'NULL';
} elseif ($fields[$j]['type'] == 'string') {
$val = '\''.addslashes($rows[$i][$j]).'\'';
$sql .= strtr(
$val,
array("\n" => '\n', "\r" => '\r', "\t" => '\t')
);
} elseif (!is_numeric($rows[$i][$j])) {
$sql .= '\''.$rows[$i][$j].'\'';
} else {
$sql .= $rows[$i][$j];
}
Автору большой респект за такое классное дополнение!
Или как вариант — открыть консоль (F12), найти
и выставить ему свойство TOP в положительное значение.
Не пойму в каких таблицах лежат продукты?
Товары со старого сайта не появились, хотя я экспортировал-импортировал следующие таблицы:
modx_ms2_order_products
modx_ms2_products
modx_ms2_product_categories
modx_ms2_product_files
modx_ms2_product_links
modx_ms2_product_options
Других таблиц со словом «Product» нет…
А таблицы не выводятся «Нет данных для вывода»
куда копать? права? не верный конект к БД?