Контрольный список для обновлений схемы базы данных

Несомненно, любая генерация случайных чисел имеет шанс произвести такие прогоны? Вы не получите достаточно большой набор образцов в 3-10 рулонах, чтобы увидеть соответствующие проценты.

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

10
задан Peter Featherstone 4 August 2017 в 14:17
поделиться

5 ответов

У меня есть большой опыт с этим. Мое приложение является очень повторяющимся, и изменения схемы часто происходят. Я делаю производственный выпуск примерно каждые 2 - 3 недели, с 50-100 объектами, очищенными от моего FogBugz, перечисляет для каждого. Каждый выпуск, который мы сделали за последние несколько лет, потребовал, чтобы изменения схемы поддерживали новые функции.

Ключ к этому должен практиковать изменения несколько раз в тестовой среде прежде на самом деле сделать их на живых серверах.

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

У меня есть два сценария, что я работаю на базе данных, один для изменений схемы, один для программируемости (процедуры, представления, и т.д.). Сценарий изменений кодируется вручную, и тот с procs задан сценарием через Powershell. Сценарий изменения выполняется, когда все выключено (необходимо выбрать время, которое раздражает наименьшее количество количества пользователей для этого), и это - команда выполнения командой, вручную, на всякий случай что-либо идет странное. Наиболее распространенная проблема, с которой я столкнулся, добавляет ограничение на уникальность данных, которое перестало работать из-за дублирующихся строк.

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

Таким образом, это - 4 общих количества баз данных:

  1. Dev: все изменения должны быть внесены в сценарии изменения, никогда со студией.
  2. Тест: Интеграционное тестирование происходит здесь
  3. Копия производства: Последняя практика развертывания
  4. Производство

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

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

5
ответ дан 4 December 2019 в 01:32
поделиться

Я предполагаю, что Вы рассмотрели чтения Scott Ambler? http://www.agiledata.org/essays/databaseRefactoring.html

2
ответ дан 4 December 2019 в 01:32
поделиться

Это - тема, что я просто говорил о на работе. Главным образом проблема состоит в том, что, если миграции базы данных не обрабатывается для Вас приятно Вашей платформой, например, направляющими и их сценариями миграции, затем это оставляют до Вас.

Текущий способ, которым мы делаем это, имеет очевидные дефекты, и я открыт для других предложений.

  1. Имейте дамп схемы со статическими данными, которые требуются, чтобы быть там усовершенствованными и в управлении версиями.
  2. Каждый раз Вы делаете схему, изменяющую действие, ИЗМЕНЯЕТЕ, СОЗДАЕТЕ, и т.д. выводите его в файл и бросаете его в управление версиями.
  3. Удостоверьтесь, что Вы обновляете исходный sql дамп дб.
  4. Чтобы выполнение нажатий жило, удостоверяются, что Вы или Ваш сценарий применяете sql файлы к дб.
  5. Очистите старые sql файлы, которые находятся в управлении версиями, поскольку они стареют.

Это ни в коем случае не оптимально и действительно не предназначается как "резервный" дб. Это должно просто сделать попытки жить легкое, и сохранить разработчиков на той же странице. Существует, вероятно, что-то охлаждается, Вы могли установить с capistrano до автоматизации приложения sql файлов к дб.

Дб определенное управление версиями был бы довольно потрясающим. Существует, вероятно, что-то, что делает это и если нет там, вероятно, должен быть.

1
ответ дан 4 December 2019 в 01:32
поделиться

И если статья Scott Ambler разжигает Ваш аппетит, я могу рекомендовать его книгу с Pramod J Sadolage названный 'Рефакторинг Баз данных' - http://www.ambysoft.com/books/refactoringDatabases.html

Существует также большой полезный совет и информация в Гибкой группе Базы данных в Yahoo - http://tech.groups.yahoo.com/group/agileDatabases/

1
ответ дан 4 December 2019 в 01:32
поделиться

Два быстрых примечания:

  1. Само собой разумеется... Таким образом, я скажу это дважды.
    Проверьте, что у Вас есть допустимое резервное копирование.
    Проверьте, что у Вас есть допустимое резервное копирование.

  2. @mk. Проверьте сообщение в блоге Jeff на управление версиями базы данных (если Вы уже не имеете),

1
ответ дан 4 December 2019 в 01:32
поделиться
Другие вопросы по тегам:

Похожие вопросы: