Функция меняет одну БД ("копию") по другой БД ("оригиналу"). PHP, MySQ
Задача.
Есть несколько БД в MySQL. Система управления на PHP/JS.
Обновления кода разрабатываются и применяются в тестовой БД, а затем эти обновления внедряются в остальные копии этой БД. Из-за наличия нескольких копий внедрение обновлений структуры БД MySQL занимает много времени.
Требуется написать функцию, которая сравнивает 2 БД, выводит на экран отличия в их структуре и, при одобрении пользователем, изменяет структуру скопированной БД по аналогии с тестовой (оригиналом).
Обязательные требования.
1. Вводим название логин и пароль БД "оригинал" и БД 2 "копия"
2. Нажимаем кнопку "Сравнить"
3. На экран выводятся:
- сначала названия всех таблиц, которых нет в "оригинале", но есть в "копии", выделяем их красным, так как их предстоит удалить в "копии". Рядом выводим количество записей в каждой из этих таблиц.
Например:
Таблица – кол записей в "копии" (шапка таблицы)
table – 130 (строки)
- выводятся названия таблиц, которые есть в "оригинале" и нет в "копии", выделяем их зеленым, их предстоит добавить в "копию".
Например:
Таблица
table
- выводим названия таблиц, в которых структура "оригинала" отличается от "копии", выделяем черным. К названию добавляем ту структуру, которая отличается. Выделяем строчку зеленым, если добавляется, красным, если удаляется, желтым, если меняется тип столбца в структуре. При изменении типа столбца записи в нем не должны удалиться, но будут преобразованы автоматически в musql.
Например:
Таблица – Столбец – тип было – тип станет – кол записей в "копии"
table – sum – float(10) – dec(10,2) – 1005 (строчка изменяемого столбца, выделяется желтым)
table – sum – - dec(10,2) – 1005 (строчка добавляемого столбца, выделяется зеленым)
table – sum – float(10) – - 1005 (строчка удаляемого столбца, выделяется красным)
Около каждой строчки галочка для общего применения изменений.
Над всем этим выводом, строго над галочками кнопка с title "Выделить все". Когда она не нажата, на ней нарисован "+", когда нажата – "-".
Кстати, такой вариант исполнения чеков уже реализован под названием "ClassNewTable". Можно использовать его. Либо, если удобнее, есть смысл содать свой, так как он нам ни раз пригодится при решении других задач.
4. Пользователь выбирает галочками какие таблицы надо изменить, либо нажимает "выбрать все" и нажимает кнопку "применить", либо кнопку "отмена", которая вернет его на предыдущий экран.
5. Функция скачивает БД "копия" на компьютер пользователя в качестве бекапа. Это должен быть стандартный файл mysql для восстановления БД и всех ее строк. Эту функцию надо сохранить отдельно, что бы была возможность вызова ее при других обстоятельствах, нетолько при копировании БД.
6. Производятся именения выбранные пользователем в таблице "копия".
7. На экран выводится сообщение об успешной или неуспешной операции.
Дамп БД: https://yadi.sk/d/N8LJjzZrm8n5bQ
-
Если проблема только в отличии схем БД, вам нужно освоить работу с миграциями.
https://www.doctrine-project.org/projects/migrations.html -
Актуальные фриланс-проекты в категории PHP
Модуль для OpenCart: массовое создание товаров из папок с изображениямиРазработка модуля массового создания товаров для OpenCart (ocStore 3.x) Необходимо разработать административный модуль для OpenCart / ocStore 3.x, который автоматически создает товары из заранее подготовленной структуры папок с изображениями.Основной функционал: массовое… CMS, PHP ∙ 5 часов 43 минуты назад ∙ 24 ставки |
Разработчик на проект CMS-сайт на Drupal 7 + PHP/MySQL.Ищем разработчика для помощи с настройкой CMS-сайта на Drupal 7 + PHP/MySQL. Задача:1. Сделать карточки товара на весь ассортимент товара (в настоящее время на сайте не на всех товарах есть карточки товара с описанием и характеристиками).2. Добавить верные характеристики на… CMS, PHP ∙ 2 дня 9 часов назад ∙ 39 ставок |
Ищем специалиста Bitrix24 / интегратора CRM для настройки автоматизацииНаша компания работает с CRM Bitrix24. Нам нужен специалист, который сможет настроить автоматическое добавление номера телефона в лиды/заказы в двух форматах. Автоматизация должна быть корректно настроена для двух стран: Республика Молдова и Румыния. Задача: При создании лида… PHP, Веб-программирование ∙ 3 дня 8 часов назад ∙ 24 ставки |
Оптимизация сайтаОптимазация сайта jdgreta.co.uk на Shopify. Сео аудит приложен к проекту. Основные задачи - - Поправить все мета данные - Выполнить ТЗ для программиста (тк в этом проекте совмещены задачи для программиста и СЕО, если вы не компания - можете использовать помощь) - Поправить… HTML и CSS верстка, PHP ∙ 4 дня 4 часа назад ∙ 33 ставки |
Специалист по HoroshopНужен специалист, который сможет правильно настроить товарный Feed. Проблема: Сейчас более 13 000 товаров выгружаются с одинаковым значением типа (например, «все для маникюра и педикюра»). Из-за этого в Google Ads невозможно разделить товары на сегменты и задать разные… PHP, Сопровождение сайтов ∙ 5 дней 6 часов назад ∙ 21 ставка |