пока вы добавляете столбцы/таблицы в свою базу данных, это будет простой задачей, заранее записав эти изменения в сценарии в sql-файлах. вы просто выполняете их. может быть, у вас есть какой-то приказ их выполнить.
хорошим решением было бы создать один файл для каждой таблицы, чтобы все изменения, относящиеся к этой таблице, были бы видны всем, кто работает с таблицей (это похоже на работу над классом). то же самое справедливо для хранимых процедур или представлений.
более сложная задача (и поэтому, возможно, не помешали бы инструменты) — сделать шаг назад. пока вы только что добавили таблицы/столбцы, возможно, это не будет большой проблемой. но если вы удалили столбцы при обновлении и теперь вам нужно отменить обновление, данных больше нет. вам нужно будет получить эти данные из резервной копии. но имейте в виду, что если у вас больше нескольких таблиц, это может стать большой задачей, и в обычном случае вы должны отменить свое обновление очень быстро!
если бы вы могли просто восстановить резервную копию, тогда все в порядке в этот момент. но, если вы обновляете в понедельник, ваши клиенты работают до среды, а потом видят, что некоторые данные отсутствуют (которые вы просто выкинули из таблицы), то вы не можете просто восстановить старую базу данных.
У меня есть подход, основанный на модели (извините, не реализованный в данный момент), в котором изменения схемы «моделируются» (например, на xml), а во время обновления процессор (например, программа ac#) создает все необходимые «sql "и например перемещает данные в «dropDatabase». данные могут находиться там, и если по какой-то причине мне нужно восстановить некоторые из удаленных данных, я могу просто сделать это с помощью процессора. я думаю, что через какое-то время (годы) этот подход не так уж плох, потому что в противном случае разработчики не трогают «старые» таблицы, потому что они больше не знают, действительно ли нужна таблица или столбец. с таким подходом вы не сильно рискуете, если что-то уроните!
person
karlis
schedule
11.02.2009