Мы работаем над проектом Joomla3.9, работаем в разных средах и используем git в качестве vcs.Так что каждый разработчик работает над своей веткой.Было бы неплохо иметь функцию сравнения базы данных, как в TYPO3 или Contao (посмотрите различия в базе данных после обновления проекта и примените изменения базы данных одним щелчком мыши).Или как система миграции laravel.
Любой разработчик должен легко обновить свою собственную базу данных lokal после того, как изменения базы данных были сделаны из-за обновления расширения через бэкэнд или другого разработчика.И, конечно же, промежуточная или живая система также должна быть легко обновлена.Мы не хотим выполнять sql-скрипты с изменениями в phpMyAdmin.Мы попробовали https://dbv.vizuina.com/.Это не 100% решение.Как будто нет поддержки Cli для запуска процесса миграции с помощью скрипта обновления на сервере.
Кто-нибудь имеет решение или знает расширение, которое может решить эту проблему?Или это можно сделать с помощью основных функций Joomla (может быть, с небольшой корректировкой)?
До сих пор я видел три возможности выполнения модификаций для одной или нескольких таблиц расширений
1: Используйте расширение - контроль версий в таблице схемы.Поэтому добавьте новый sql-файл с увеличенным номером версии по сравнению с номером версии в таблице схемы для этого расширения.Увеличьте также версию в manifest.xml и снова заархивируйте расширение.Переустановите расширение через extension-> manage-> install.Таким образом, будет выполнен новый sql-файл с увеличенным номером версии.
2: как и в предыдущем пункте, но установить расширение через механизм обновления joomla (сервер обновлений).
3 .: создать новый sql-файл в папке sql / расширения.Для нового файла не требуется имя версии, просто update.sql или другое имя файла.Выполните этот скрипт в script.php в методе update (), после того, как расширение будет установлено (в данном случае это обновление) снова.
Третья возможность может быть интересной.Должна быть предусмотрена возможность запуска метода update () с помощью команды / функции cli, чтобы метод мог быть запущен с помощью сценария на сервере.Но как я могу получить информацию, какие скрипты обновления уже были выполнены?Допустим, у меня есть 3 файла обновления в sql-папке.update-1.sql, update-2.sql и update-3.sql.update-1.sql уже выполнен.Поэтому я не хочу снова запускать этот sql-файл - только два других.Таблица схемы используется только с первыми двумя опциями.У меня где-то есть информация, или я должен управлять информацией о том, какие сценарии обновления выполнялись самостоятельно?