Я работаю над улучшением моего рабочего процесса git, поскольку он применяется к моим проектам разработки WordPress. Часто при разработке системы управления контентом я создаю сервер разработки (например http://dev.finalsitename.com
), содержащий пользовательские типы записей и таксономии, которые будут использоваться в рабочей версии. Это позволяет моему клиенту начать добавлять свой контент на сайт.
Пока они работают над этой задачей, я обычно создаю внешний вид, а также настраиваемые программы / плагины, которые будут использоваться в моей среде localhost. Чтобы гарантировать, что я не перезаписываю их обновления, я обычно вытаскиваю копию их базы данных и заменяю свою. Однако бывают случаи, когда мне просто нужно прыгнуть в админку WP и изменить настройку или что-то еще маленькое ...
Если над проектом WordPress работают несколько разработчиков, каждый из нас делает (помеченный меткой времени) дамп базы данных нашей версии сайта и включает его в корневой каталог перед фиксацией и отправкой их локальной ветви обратно в удаленный репозиторий. Проблема с этим подходом состоит в том, что базы данных часто не синхронизированы, и нет простого способа определить, какой из них использовать.
Что делают другие разработчики, чтобы синхронизировать свои базы данных, в то же время позволяя нескольким разработчикам (и клиентам / производителям контента) работать над одним проектом?
источник
Извините, если это кажется невероятно очевидным, но если вам всем нужна одна и та же копия базы данных с одинаковой структурой, разве не имеет смысла иметь офисный / центральный сервер SQL и использовать его? Клонируйте его локально, если вам нужно экспериментировать, но сохраняйте его в качестве стандартного дефакто-стандарта и делайте резервные копии этого сервера и только этого сервера.
В противном случае, когда я работаю над групповым проектом, у нас есть собственные настройки с другим содержанием. Код заботится об обновлении и переносе табличных структур, и мы можем получить доступ к локальным установкам кода, работающего на наших машинах, через локальную сеть, поэтому нам не нужно обмениваться контентом.
Если мы вводим контент, мы запускаем его на тестовом сервере, который затем мы можем либо экспортировать и импортировать на работающий сервер, либо мы можем перейти непосредственно на производственный сервер, если в данный момент живого экземпляра не существует.
Если в какой-то момент вам нужно разделить данные реального тестирования и WIP, просто используйте ветвь реального времени, тестирования и разработки в своем хранилище.
источник