Версии базы данных Testing и Managing против версий кода

Вот мой подход, который кажется более чистым для моих целей.

Во-первых, для любых и всех форм:

$('form').click(function(event) {
  $(this).data('clicked',$(event.target))
});

Когда это событие click запускается для формы, оно просто записывает исходную цель (доступную в объекте события) для доступа позднее. Это довольно широкий штрих, поскольку он срабатывает для любого щелчка в любом месте формы. Комментарии к оптимизации приветствуются, но я подозреваю, что это никогда не вызовет заметных проблем.

Затем в $ ('form'). Submit () вы можете узнать, что было последним нажато, с чем-то вроде

if ($(this).data('clicked').is('[name=no_ajax]')) xhr.abort();
7
задан Craig 28 August 2008 в 23:30
поделиться

6 ответов

Номера версий, встроенные в базу данных, полезны. У Вас есть два варианта, встраивая значения в таблицу (позволяет управлению версиями несколько объектов), который может быть запрошен, или наличие explictly именованного объекта (такого как таблица или somesuch), можно протестировать на.

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

3
ответ дан 7 December 2019 в 10:11
поделиться

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

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

Обратите внимание, что я не говорю, что все Ваше живое содержание базы данных должно быть в том же управлении исходным кодом, как раз для получения до чистого состояния. (Действительно создайте резервную копию своего содержания базы данных, хотя!)

1
ответ дан 7 December 2019 в 10:11
поделиться

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

Проблема возникает, когда необходимо изменить таблицу, которая уже сделана. Я не думаю это дескрипторы syncdb это. Это потребовало бы, чтобы Вы вошли и вручную добавили таблицу и также добавили свойство к модели. Вы, вероятно, хотели бы присвоить версию, которые изменяют оператор. Модели всегда являлись бы объектом управления версиями, хотя, поэтому если Вам было нужно Вам, мог бы разбудить схему дб и работу нового поля, не запуская sql скрипты. Другая проблема с этим отслеживает статические данные, которые Вы всегда хотите в дб.

Сценарии миграции направляющих довольно хороши также.

Система управления версиями DB была бы большой, но я действительно не знаю о такой вещи.

0
ответ дан 7 December 2019 в 10:11
поделиться

В то время как способность сделать так полезна (особенно на ранних стадиях нового проекта), многие (большинство?) базы данных быстро станут слишком большими, чтобы это было возможно. Кроме того, если у Вас есть какие-либо БЛОБЫ затем, Вы собираетесь иметь проблемы при генерации сценариев SQL для всей базы данных.

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

0
ответ дан 7 December 2019 в 10:11
поделиться

Необходимо смочь создать базу данных с нуля в известное состояние.

В то время как способность сделать так полезна (особенно на ранних стадиях нового проекта), многие (большинство?) базы данных быстро станут слишком большими, чтобы это было возможно. Кроме того, если у Вас есть какие-либо БЛОБЫ затем, Вы собираетесь иметь проблемы при генерации сценариев SQL для всей базы данных.

Я определенно интересовался своего рода системой управления версиями DB, но я ничего еще не нашел. Так, вместо решения Вы получите мой голос.:-P

1
ответ дан 7 December 2019 в 10:11
поделиться

Определите объекты схемы и справочные данные в текстовых файлах с контролем версий. Например, вы можете определить схему в формате Torque , а данные - в формате DBUnit (оба используют XML). Затем вы можете использовать инструменты (мы написали свои собственные) для создания DDL и DML, которые переносят вас от одной версии вашего приложения к другой. Наш инструмент может принимать в качестве входных данных либо (а) XML-файлы схемы и данных предыдущей версии, либо (б) существующую базу данных, поэтому вы всегда можете получить базу данных любого состояния в правильное состояние.

1
ответ дан 7 December 2019 в 10:11
поделиться
Другие вопросы по тегам:

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