Текущий архив: 2004.04.04;
Скачать: CL | DM;
Вниз
Проблемы с ключами, таблицами Найти похожие ветки
← →
T{}r(l-l (2004-03-02 11:33) [0]Доброго времени суток, уважаемые!
Горю,блн,от глупости своей... :(
Delphi5/BDE/MSSQL Server 7.0
Такая вот проблема: есть база1, в ней 7 таблиц (с ключами).Для того, чтобы не мучаться с обновлением хранимых процедур, созданием новых таблиц и сохранением информации был выбран следующий путь: человек обновляющий программу, первым делом insert into заливал 7 таблиц в Temp_база1, затем останавливал сервер, запускал setup, который, в свою очередь, просто тупо затирал база1.mdf и база1.ldf файлы, заменяя их новыми (с обновленными процами и т.д.). После этого человек запускал процу, которая забрасывала из Temp_база1 в база1, те нужные (ранее сохраненные) 7 таблиц. И вот здесь (из-за моего непонимания работы с первичными и вторичными ключами), я допустил ошибку - я делал drop каждой из 7 таблиц, а затем insert into - естественно, что структура таблиц развалилась. Т.е. получалось, что таблицы заливались, но уже без ключей, при этом данные туда ещё как-то заносятся (???), т.е. программа (экзешник) на местах работает, если запустить из-под Дэльфи, всё рушится и начинает ругаться на ключи...
Возможные пути решения: уверен, что есть возможность, при помощи SQL задавать таблицам ключи и связь, как это сделать? И ещё, может есть механизм (думаю, что скрипты, или системные серверные процедуры) для заливки на сервер обновленных хранимых процедур,
dts-пакетов и таблиц. Вариант с тем, чтобы приходить на рабочее место, открывать QueryAnalyzer и запускать процы не проходит, нужен вариант проще.
Вообщем, огромное всем спасибо, кто прочитал мой пост и буду благодарен за любую помощь!
← →
SergSuper (2004-03-02 12:51) [1]а не проще бэкап/ресторе делать? как-то нехорошо во внутренности то влезать
← →
Andriano (2004-03-02 12:57) [2]Ничего не развалилось. Просто теперь надо ключи добавить и всё.
← →
Andriano (2004-03-02 12:58) [3]Естественно, ключи создавать лучше перед заполнением данных.
← →
just me (2004-03-02 13:18) [4]Если система эксплуатируется и данные при апгрейде терять нельзя, значит ничего убивать и пересоздавать не нужно. Нужно просто периодически писать и пускать на сервере апдейт-скрипты, которые будут при необходимости модифицировать структуру таблиц, менять процедуры и тригеры, добавлять справочные данные и пр. А пускать такие скрипты можно по-разному. Вплоть до автоматического пуска по расписанию, когда сервер сам ищет скрипт в заданном каталоге. И здесь полезным будет завести в базе табличку для хранения номера версии базы и билда, чтобы отслеживать такие модификации.
И почитай статейку из MSDN "Deploying Database Solutions" - многие интересующие тебя вопросы там затрагиваются
← →
T{}r(l-l (2004-03-02 14:57) [5]понятно, спасибо, через Generate Script c оригинальной (не сломаной) базы я сгенерил скрипты для ключей и после запуска этой процы ключи встали. По поводу обновления - это отдельно стоящие рабочие станции. А обновления случаются не по расписанию.
← →
just me (2004-03-02 15:26) [6]Не обновление делается по расписанию, а сервер сам по расписанию ищет, нет ли новых скриптов обновления, которые он еще не применял к базе.
← →
Petr V. Abramov © (2004-03-02 15:46) [7]> Andriano (02.03.04 12:58) [3]
> Естественно, ключи создавать лучше перед заполнением данных.
Ничего естественного. При наличии ключей само "заполнение" будет идти медленнее, если постараться - в разы.
Единственный случай, когда это справедливо - когда изначально есть очень большие подозрения на заливаемые данные.
← →
T{}r(l-l (2004-03-02 15:48) [8]Это понятно, я вот что имею ввиду: вначале мы делаем новую версию, затем заклеиваем всё это в Setup, а потом отсылаем людей на места обновлять, а это может быть и раз в неделю, а может и раз в два месяца, хотя конечно можно сделать, чтобы он каждый день смотрел... Думаю, что легче сделать через WiseInstallMaster (именно с его помощбю мы ваяем Setup-ы), т.к. он , в принципе, и сам голый скрипт... Т.е. чтобы он выступал как бы в роли Analyzer-a. Осталось только научиться. ;+)
Страницы: 1 вся ветка
Текущий архив: 2004.04.04;
Скачать: CL | DM;
Память: 0.49 MB
Время: 0.023 c