Моя команда и я работаем с клиентом, у которого есть существующий сайт WordPress с достаточным количеством контента и созданной ими пользовательской темой. Это групповой блог, то есть несколько блоггеров по всему миру, которые постоянно добавляют и редактируют контент.
Наша задача - создать совершенно новую тему с несколькими новыми функциями. Некоторые из этих функций потребуют новых пользовательских виджетов, плагинов и полей базы данных.
В настоящее время мы работаем над нашими собственными машинами разработки и интегрируем их в единый сервер разработки. Весь код версирован в SVN. Наш назначенный администратор баз данных вручную объединяет любые изменения в базе данных в базу данных разработчиков прямо сейчас, хотя, надеюсь, он сможет автоматизировать это в ближайшее время.
Мы только начали говорить о процессе выпуска нашей продукции. Значение: как только мы закончим, как мы сможем беспрепятственно и с минимальными перебоями перенести весь наш пользовательский код на рабочий (живой) сервер?
У нас есть несколько планов, но я хотел бы услышать, как другие решают эту проблему. Есть ли какие-либо передовые методы, которым нужно следовать или известные подводные камни, которых следует избегать?
Я не уверен, что это применимо, но я только что прошел аналогичный процесс одновременной миграции и обновления сайта с большим трафиком.
Основная стратегия заключалась в том, чтобы работать на промежуточном сервере, затем, когда все было готово, выполнить дамп mysql на действующем сервере, импортировать его на промежуточный сервер, выполнить необходимую очистку, а затем направить записи DNS на промежуточный сервер, вызывая промежуточный сервер, чтобы стать новым живым сервером.
Сложнее всего объединить все данные, которые накапливаются во время распространения DNS, в промежуточный сервер (который теперь является живым сервером). Другими словами, если между выполнением DNS-запроса / обновления DNS MySQL и завершением распространения DNS пройдет 30 часов, вам придется выборочно объединять 30 часов записей со старого сайта на новый.
Это не простой процесс, но к тому времени, когда мы провели неделю, все перегибы сгладились.
источник
@Mike Lee: Отличный вопрос и один из святых Граалов WordPress (или любой из распространенных CMS с открытым исходным кодом, с которыми я знаком по этому вопросу, таких как Drupal, Joomla и др.)
Хотя это, конечно, не предназначено для рассмотрения вашего варианта использования, ознакомьтесь с моим ответом на связанный вопрос, в котором описывается плагин бета-уровня, который я только что сделал доступным через WordPress Exchange для обмена ответами, под названием WP Migrate Webhosts (да, я не понимаю, когда речь идет о творческом именовании .)
Но я также хочу решить описанный вами вариант использования с помощью плагина и сейчас думаю о том, как этого добиться. Я думаю, что способ подойти к нему - отказаться от его общего решения и вместо этого обратиться к известным шаблонам, существующим в WordPress, а затем разрешить кому-либо еще « подключать » мой плагин для особых случаев использования. Я также думаю, что подход заключается в том, чтобы сериализовать данные и структуры в WordPress как данные в файле PHP, чтобы будущий плагин мог применить эти изменения как дельты, так же как система управления исходным кодом применяет дельты для получения текущей версии исходного кода. код.
Поэтому, хотя я не отвечаю и не решаю вашу проблему в полном объеме, я надеюсь, что даю вам хорошую пищу для размышлений, а также надеюсь, что вы или кто-то еще, возможно, захотите сотрудничать для возможного решения.
источник