Каков Ваш процесс для контакта с изменениями схемы базы данных в команде разработчиков?

Как насчет

 DateTime lclTime = DateTime.Now;
 DateTime ept = lclTime.ToUniversalTime().AddHours(
                   IsEasternDaylightSavingTime(
                       lclTime.ToUniversalTime())? -5: -4)

или если Вы уже имеете локальный UTC, всего

 DateTime lclUtc = DateTime.UtcNow;
 DateTime ept = lclUtc.AddHours(
                  IsEasternDaylightSavingTime(lclUtc)? -5: -4)

Использование статический словарь твердых кодированных значений для Spring вперед и отступаете даты в течение Восточного времени в течение следующих 50 лет.. Это составляет приблизительно только 300 байтов..., и затем индексируйте в это, чтобы определить, является ли это Летним временем на восточном побережье... Как указано, Вы надеваете; t заботятся, является ли это DST в локальной зоне или нет...

 private static bool IsEasternDaylightSavingTime(DateTime utcDateTime)
   {
        // hard coded method to determine 
        // whether utc datetime is Eastern Standard time
        // or Eastern Daylight Time
   }
6
задан 23 September 2009 в 16:00
поделиться

6 ответов

Один из подходов, который мы использовали в прошлом, - это создание сценария всего DDL для базы данных вместе со всеми необходимыми данными тестирования / настройки. Сохраните это в SVN, а затем, когда произойдет изменение, любой разработчик может извлечь изменения, удалить базу данных и восстановить ее из файлов сценария.

8
ответ дан 9 December 2019 в 22:37
поделиться

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

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

2
ответ дан 9 December 2019 в 22:37
поделиться

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

Ночная сборка приложения включала сборку базы данных ( SQL Server). База данных построена на сервере Test DB. Затем у каждого разработчика был пакет DTS (это было некоторое время назад, и я уверен, что они обновились до пакетов SSIS), чтобы загрузить эту ночную сборку БД в свою локальную среду БД.

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

1
ответ дан 9 December 2019 в 22:37
поделиться

У нас есть не-SQL описание схемы базы данных. Когда приложение запускается, оно сравнивает желаемую схему базы данных с реальной схемой базы данных и выполняет все операторы ADD TABLE, ADD COLUMN, ADD INDEX и т. Д., Которые ему необходимы, чтобы база данных выглядела правильно.

Это не ' t обрабатывать каждый случай; иногда вам нужно удалить базу данных и воссоздать ее заново, если вы изменили что-то, что преобразователь схемы не может обработать, но в большинстве случаев нам не нужно об этом беспокоиться.

0
ответ дан 9 December 2019 в 22:37
поделиться

На моей работе мы имеем дело с довольно большими базами данных, создание которых требует много времени, поэтому для нас начинать с нуля с новой БД не идеально. Как и у Харпера, у нас есть DDL в SVN. Кроме того, мы храним номер версии в таблице базы данных. Каждая регистрация, которая изменяет БД, должна сопровождаться сценарием, который:

  1. Обновит схему базы данных и соответствующим образом изменит любые существующие данные, и
  2. Обновит номер версии в базе данных.

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

Таким образом, если у меня есть копия БД клиента размером 4 ГБ,

0
ответ дан 9 December 2019 в 22:37
поделиться

Я бы определенно сохранил схему базы данных в управлении исходным кодом.

В моей текущей работе каждый раз, когда происходит изменение схемы, мы пишем SQL для этого изменения (alter table xyz add столбец ...) и поместите его в SVN. Затем разработчики могут обновить тестовые базы данных, запустив этот скрипт. Это довольно неуклюже, но работает.

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

Я думаю, что для этого должен быть какой-то общий инструмент SQL. Может быть, и есть, но никогда не видел.

0
ответ дан 9 December 2019 в 22:37
поделиться
Другие вопросы по тегам:

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