Изменение производственной базы данных

#mysql #database

#mysql #База данных

Вопрос:

Вероятно, это простой вопрос. У меня есть база данных, которую я использую для хранения данных моих пользователей. Мое приложение запрашивает эту базу данных, чтобы определить, получают ли они доступ или нет.

Во время тестирования, если бы я хотел изменить структуру базы данных, например, добавить новый столбец, я бы просто УДАЛИЛ таблицы и создал их заново. Я не думаю, что хочу делать это в живой системе. Как бы я мог безопасно выполнить что-то подобное?

Спасибо

Ответ №1:

Как правило, я отслеживал изменения базы данных в системе управления версиями как таковые:

  • Имейте начальный набор сценариев для создания исходной базы данных. Этот шаг может быть выполнен по мере необходимости в средах разработки и тестирования, но в рабочей среде он в значительной степени выполняется только в первый раз.
  • Есть папка с дельта-скриптами. При создании базы данных с нуля скрипты в этой папке (отсортированные значимым образом, например, численно или с отметкой даты-времени) запускаются после начальных базовых скриптов. В данном примере это была бы ALTER TABLE команда в скрипте.

При создании базы данных с нуля все выполняется (по порядку). При применении изменения к действующей базе данных выполняются только дельты, которые не были запущены. (Отслеживание того, какие из них были запущены, является операционной процедурой, путем отслеживания того, какая редакция системы управления версиями находится в какой среде.)

Если папка с дельтами начинает становиться неуправляемой, я полагаю, вы можете время от времени обновлять базовые сценарии создания. Вероятно, это неплохая идея, просто как проверка работоспособности, чтобы убедиться, что данные не были введены в систему без надлежащего отслеживания.

Ответ №2:

Alter table — это та команда, которая вам нужна.

Ответ №3:

Я предлагаю вам написать простой php-скрипт для изменения вашей тестовой базы данных вместо того, чтобы делать это вручную, есть много примеров, доступных через Google, и использовать этот же скрипт в вашей производственной (оперативной) базе данных.

Не забывайте всегда сначала создавать резервную копию на случай, если что-то пойдет не так.

Удачи!