Я знаю, что этот вопрос задавался тысячу раз, но я действительно пытаюсь понять, как извлечь максимум пользы из Git при работе с WordPress.
Я просмотрел сеть и прочитал десятки статей, которые, кажется, кратко освещают эту тему. Вот некоторые из самых заметных, которые я читал недавно.
- Управление версиями WordPress
- Управление развертыванием тем WordPress с помощью Git
- Управляйте своей собственной темой WordPress, используя git вместо FTP
В настоящее время мой рабочий процесс выглядит следующим образом.
- Установите WordPress локально
- Разработать тему
- Экспорт баз данных WordPress с локального сервера
- Импорт базы данных WordPress на удаленный сервер
- Загрузить файлы WordPress и тему через FTP
- Клиент вносит изменения
- Загрузите файлы и темы WordPress через FTP и экспортируйте базы данных WordPress с удаленного сервера
- Заменить файлы локально
- Внести изменения в развитие
- Повторная загрузка через FTP, экспорт и импорт базы данных на удаленный сервер
Я понимаю, что Git может упростить этот процесс. Кажется, лучший способ сделать это - иметь файл .gitignore, который игнорирует определенные каталоги, которые не нужно отслеживать, а также иметь как локальный, так и удаленный файл wp-config.php.
Но как вы справляетесь с базами данных? Клиенты обычно вносят изменения (посты / страницы / плагины). Нужно ли мне экспортировать данные из удаленной базы данных и импортировать обратно на мой локальный сервер?
Может кто-нибудь предложить лучший рабочий процесс для меня здесь? И проведи меня по ступенькам.
Кроме того, я бы хотел использовать Bitbucket, поскольку частные репозитории с ними бесплатны, в отличие от GitHub.
Любая помощь будет оценена.
Заранее спасибо!
источник
Ответы:
Я являюсь одним из разработчиков WP Migrate DB Pro и хотел бы ответить на вопрос @ Ennui:
«Знаете ли вы, учитывает ли сценарий db url replace, который он запускает, сериализованные строки?»
Да, он обрабатывает сериализованные данные. Фактически, это основная причина, по которой я разработал бесплатную версию плагина еще в 2009 году. :)
К сожалению, у меня всего 41 репутация, поэтому я не смог ответить на комментарий @ Ennui. Простите за это.
источник
Я граничу с голосованием, чтобы закрыть это как «неконструктивное», так как это похоже на то, что будет вызывать споры и мнения, а не ответы. Но...
Это не то, на что похож мой рабочий процесс, и это отличает мой подход (и ответ) от большинства остальных ответов.
По сути, я держу клиента подальше от своих вещей, пока мы не передадим сайт.
Код перемещается в одну сторону - от локального до постановочного или производственного. Он никогда не двигается в другую сторону. Это исключает некоторые ваши шаги и дает мне некоторое спокойствие. Я не хочу, чтобы меня обвиняли в том, что клиент вмешался в мой код, и я не хочу импортировать взломанный файл, что является ненулевой вероятностью.
И база данных перемещается только один раз, если вообще, что значительно уменьшает проблему. Таким образом, я полагаю, что справляюсь с проблемой «перемещения базы данных», уменьшая или устраняя необходимость перемещения базы данных. Это также уменьшает проблемы с повреждением базы данных, которые могут возникнуть, и снижает вероятность импорта хака.
Правда, мне нужно настроить производственную площадку - постоянные ссылки, меню и т. Д. - но это заставляет меня работать на производственной площадке, поэтому я считаю это своего рода отладкой. Это помогает мне подтвердить, что на производственной площадке все работает так, как должно.
источник
https://github.com/nathanielks/Wordpress-Capistrano-Deploy
Я не пробовал это сам (пока), но он утверждает, что развернул все, включая БД.
Существует также учебник, чтобы пойти с ним: Учебник часть 1 | часть 2
источник
Посмотрите на стек скалы . Он использует composer для управления версией плагинов Wordpress и сторонних производителей, а также включает capistrano для развертываний и vagrant / ansible для настройки серверов, включая локальные виртуальные серверы для разработки.
источник
Недавно я провел много тестов по этому поводу, и вот рабочий процесс, который я использую, который в значительной степени выполняет то, что вы просите:
Я не знаком с инструментами миграции БД, но был бы отличным дополнением к этому рабочему процессу.
Вот полная информация о рабочем процессе http://geekpad.ca/blog/post/maintainble-portable-wordpress-using-composer-wp-cli
источник
Что касается «клонирования» базы данных, я использую WP Migrate DB Pro: http://deliciousbrains.com/wp-migrate-db-pro/
Это платная услуга, но она не требует больших затрат и позволяет легко извлекать или перемещать вашу базу данных с вашего разработчика на живой сервер и наоборот. Он меняет URL-адреса и все остальное, что нужно изменить по пути.
источник