Лучшие практики для обновления живого сайта

Ситуация:

  1. Я только что развернул первую версию своего сайта (на PHP с базой данных MySQL). Теперь мне нужно перейти на версию 2 моего сайта.
  2. Обычно я создаю свой сайт на localhost, прежде чем перенести его на рабочий сервер.
  3. Теперь я хочу реструктурировать свою базу данных. Но я не понимаю, как это сделать без потери / повреждения существующих пользовательских данных.
  4. Я обеспокоен тем, что пока я делаю вышеуказанные изменения, пользователь может попытаться внести изменения в базу данных.

Вопросы к вам

  1. Мне нужно протестировать мой код на моем сервере, но я не хочу показывать его общественности, пока я делаю это. Как лучше всего справиться с этим? Здесь есть несколько вариантов?
  2. Допустим, я реструктурирую свою базу данных в localhost. Как мне продублировать эту реструктуризацию на живом сервере? Нужно ли выполнять каждый запрос на локальном и производственном серверах? (Кажется, очень неэффективно — есть ли лучший способ сделать это?)
  3. Как сделать так, чтобы при реструктуризации базы данных
    неприкосновенность данных не пострадает (т. е. как убедиться, что
    «Версия» базы данных не меняется, пока я не закончу свою работу?)
  4. Допустим, я облажался и мне нужно «отменить» изменения в моем коде. Каков наилучший способ вернуться к исходной версии сайта? Нужно ли восстанавливать резервную копию и терять какие-либо временные изменения?
  5. Есть ли общий список дел & Не касается процесса? Буду признателен за любые полезные ссылки.

-1

Решение

  1. Вы можете клонировать свой производственный сайт на одном сервере с другим доменом. Например staging.yourdomain.com и защитить его паролем
  2. Вы можете написать файл миграции sql, который содержит все изменения (ALTER TABLE …). Затем вы можете выполнить этот файл миграции во время процесса развертывания.
  3. Вы должны использовать инструмент развертывания, такой как capistrano, для автоматизации процесса развертывания.
  4. Когда вы используете инструмент развертывания, вы можете сделать следующее:
    • Создайте директорию struture, которая позволяет символическую ссылку на версии
      / www-data -> символическая ссылка на / Releases / Version2
      / Релизы / version1
      / Релизы / version2
    • Разверните файлы php в новом каталоге в / Release
    • Сделайте резервную копию вашей производственной БД
    • Выполните любые другие задачи, необходимые для развертывания (например, js minifying)
    • В конце концов, когда все задачи выполняются правильно, измените символическую ссылку на / www-data на / release / version3
2

Другие решения

Для PHP есть Phinx, библиотека для записи миграций в вашу базу данных.

Что касается программного обеспечения, базы данных могут иметь версии. Phinx позволяет вам писать миграцию программно через API. Каждый раз, когда вы добавляете «миграцию», он создает файл, описывающий все изменения. Затем вам придется применить миграцию с помощью интерфейса командной строки (CLI).

ВСЕГДА необходимо хранить резервные копии вашей базы данных (таблиц и данных), по крайней мере, один день. Если что-то плохое случится, когда вы вручную (или нет) измените базу данных, у вас будет резервная копия для восстановления.

0

По вопросам рекламы [email protected]