Это удобно, когда у вас есть версия приложения DEVELOPMENT на вашем локальном компьютере, и вы можете развернуть ее на сервере STAGE для тестирования (это необязательно), а затем развернуть его на сервере PRODUCTION. Вы можете сделать это относительно легко, когда в проекте есть прекрасное усмотрение кода и данных (например, если мы сохраним весь код и настройки в файлах проектов и данных в базе данных).Какова наилучшая практика развертывания при использовании MODX?
MODX хранит шаблоны, фрагменты и т. Д. В базе данных. Да, мы можем переместить этот код в статические файлы, а затем мы можем использовать систему контроля версий для отслеживания изменений этих элементов. Но в них тоже есть строки представления. Это означает, что мы должны обновлять базу данных по-прежнему, если мы добавили или удалили некоторые элементы.
Похоже, что мы также можем получить некоторые проблемы, если мы просто скопировали файлы расширений вместо того, чтобы делать установку менеджером пакетов (поскольку расширения часто имеют свои собственные таблицы в БД).
Другая проблема заключается в том, что приложения на DEV и PROD имеют разные настройки, хранящиеся в файлах (configs) и базе данных (учетные записи пользователей, например).
Я до сих пор не вижу ясного способа организовать итеративный цикл разработки DEV-STAGE-PROD. Итак, мои вопросы:
- Какие файлы и таблицы базы данных должны (или должны) копироваться при развертывании?
- Что такое режим (заменить, игнорировать) Я должен сделать это?
- Что является самым простым и быстрым способом сделать это?
Моя самая большая проблема здесь связана с базой данных.
P.S. Я говорю о версии «Революции» MODX, если это имеет значение.
Я имею в виду способ развернуть только некоторые изменения не для всего проекта. В этом случае разработчик обычно имеет огромную БД на стороне производства и небольшую тестовую БД на локальной машине. Итак, какая часть базы данных должна быть скопирована и каков наилучший способ сделать это? Как насчет конфликта идентификационных данных при создании нового ресурса на DEV, и у него есть идентификатор, который уже занят PROD? –