#mysql #database
#mysql #База данных
Вопрос:
Вероятно, это простой вопрос. У меня есть база данных, которую я использую для хранения данных моих пользователей. Мое приложение запрашивает эту базу данных, чтобы определить, получают ли они доступ или нет.
Во время тестирования, если бы я хотел изменить структуру базы данных, например, добавить новый столбец, я бы просто УДАЛИЛ таблицы и создал их заново. Я не думаю, что хочу делать это в живой системе. Как бы я мог безопасно выполнить что-то подобное?
Спасибо
Ответ №1:
Как правило, я отслеживал изменения базы данных в системе управления версиями как таковые:
- Имейте начальный набор сценариев для создания исходной базы данных. Этот шаг может быть выполнен по мере необходимости в средах разработки и тестирования, но в рабочей среде он в значительной степени выполняется только в первый раз.
- Есть папка с дельта-скриптами. При создании базы данных с нуля скрипты в этой папке (отсортированные значимым образом, например, численно или с отметкой даты-времени) запускаются после начальных базовых скриптов. В данном примере это была бы
ALTER TABLE
команда в скрипте.
При создании базы данных с нуля все выполняется (по порядку). При применении изменения к действующей базе данных выполняются только дельты, которые не были запущены. (Отслеживание того, какие из них были запущены, является операционной процедурой, путем отслеживания того, какая редакция системы управления версиями находится в какой среде.)
Если папка с дельтами начинает становиться неуправляемой, я полагаю, вы можете время от времени обновлять базовые сценарии создания. Вероятно, это неплохая идея, просто как проверка работоспособности, чтобы убедиться, что данные не были введены в систему без надлежащего отслеживания.
Ответ №2:
Alter table — это та команда, которая вам нужна.
Ответ №3:
Я предлагаю вам написать простой php-скрипт для изменения вашей тестовой базы данных вместо того, чтобы делать это вручную, есть много примеров, доступных через Google, и использовать этот же скрипт в вашей производственной (оперативной) базе данных.
Не забывайте всегда сначала создавать резервную копию на случай, если что-то пойдет не так.
Удачи!