powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Обновление структуры БД
30 сообщений из 30, показаны все 2 страниц
Обновление структуры БД
    #32522037
vis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ТЗ: есть несколько подразделений, на которых стоит одинаковый софт
время от времени возникает необходимость в изменении структуры баз (изменения законодательства, проч.).

Хотелось бы услышать мнение "авторитетов" :)
кто как обновляет структуру баз (FB1.5)?

Используя postgresql, я делал так:
skeleton.sql - "скелет" базы
updateXXX.sql - апдейт до версии ХХХ

пользователь при получении апдейта ручками пускал psql и обновлялся до версии ХХХ.

В FB1.5 столкнулся с проблемой некорректной работой команд DDL при
выполнении скрипта из файла. Подозреваю, что из-за неявного commit
после команды DDL
...
Рейтинг: 0 / 0
Обновление структуры БД
    #32522042
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Конкретнее о своих граблях, плс.
Чем выполнял скрипт?
...
Рейтинг: 0 / 0
Обновление структуры БД
    #32522124
vis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
do_sql.bat <update_script> <password>

Код: plaintext
1.
2.
3.
4.
do_sql.bat:
 -----------------------------------
 
c:\progra~ 1 \Firebird\Bin\isql <base> -u SYSDBA -p % 2  -i % 1 

Например,

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
update018.sql:
 -----------------------------------
 
create generator accountsID;
set generator accountsID to  0 ;
create table accounts (
id         int default  0  not null primary key,
num        char( 14 ) default '' not null,
name       char( 50 ) default '' not null);
insert into accounts (id, num, name) 
              values ( gen_id(accountsID, 1 ), '000000000000', 'введите транзитный счет');

alter table receiv add
    trans_acc int default  1  references accounts;
update receiv set trans_acc= 1 ;

alter table document add
    trans_acc char( 14 ) default '' not null;
alter table a_document add
    trans_acc char( 14 ) default '' not null;

DECLARE EXTERNAL FUNCTION abs 
    DOUBLE PRECISION
    RETURNS DOUBLE PRECISION BY VALUE
    ENTRY_POINT 'IB_UDF_abs' MODULE_NAME 'ib_udf';

update document set trans_acc=(select trans_acc from params);    
update a_document set trans_acc=(select trans_acc from params);    
update params set ver='0.18';
commit;

вылетел на

Код: plaintext
1.
2.
alter table receiv add
    trans_acc int default  1  references accounts;
с сообщением "таблица accounts занята"
...
Рейтинг: 0 / 0
Обновление структуры БД
    #32522138
vis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
хех, может ему не понравился default 1 references accounts
при том что изменения в accounts не были подтверждены?
...
Рейтинг: 0 / 0
Обновление структуры БД
    #32522153
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Перед тем как строить foreign key, ты должен всех выгнать из базы.
Т.к. у IB есть такя (неприятная) особенность - внешние ключи строятся только при монопольном использовании таблицы.
...
Рейтинг: 0 / 0
Обновление структуры БД
    #32522184
vis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Понятно. Все это решаемо, основная проблема в том, что структура
базы между ЯВНЫМИ

Код: plaintext
1.
2.
set transaction;
... 
commit;

не является величиной постоянной :(

Собственно, почему и появился вопрос :)
...
Рейтинг: 0 / 0
Обновление структуры БД
    #32522219
vis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2Мимопроходящий: но за информацию спасибо. Не знал...

ЗЫ. Идём обедать? :)
...
Рейтинг: 0 / 0
Обновление структуры БД
    #32522221
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А ты в где?
...
Рейтинг: 0 / 0
Обновление структуры БД
    #32522486
vis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кривой Рог....

А чё, никто таким извращением не занимается? (обновлением структуры баз)
...
Рейтинг: 0 / 0
Обновление структуры БД
    #32522512
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это актульно (и несколько проблематично) только для тиражируемых продуктов.
Когда у заказчика нет собственного DBA, а зачастую и вообще квалифицированного IT-специалиста.
...
Рейтинг: 0 / 0
Обновление структуры БД
    #32522523
vis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...или подразделения разбросаны по большой территории
Ээээх.
...
Рейтинг: 0 / 0
Обновление структуры БД
    #32522789
vis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Шо ж, стреляться?
Или не обновлятся?
Или коммерческо-профессиональная тайна?
...
Рейтинг: 0 / 0
Обновление структуры БД
    #32522799
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну дык и обновляй. Где проблема-то?
...
Рейтинг: 0 / 0
Обновление структуры БД
    #32522806
vis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дык, допустим, не выгнали при обновлении всех из базы.
Запустили апдейт.
Часть изменений принята, часть нет. Что дальше? :(
...
Рейтинг: 0 / 0
Обновление структуры БД
    #32522845
vovan1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторДык, допустим, не выгнали при обновлении всех из базы.

ВЫГАНЯЙ ВСЕГДА ВСЕХ, особенно если у тебя IB6, у меня по этой оплошности база 2 раза сыпалась, да так что никакие DatabaseValidation не помогли.
...
Рейтинг: 0 / 0
Обновление структуры БД
    #32522893
vis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2vovan1: моя бы воля я бы их ваще туда не пускал :))

Код: plaintext
1.
2.
3.
gfix <base> -shut -force  5 
...
gfix <base> -online

вписал...
...
Рейтинг: 0 / 0
Обновление структуры БД
    #32522896
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Учти, не безопасно.
...
Рейтинг: 0 / 0
Обновление структуры БД
    #32522908
vis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2Мимопроходящий:

А почему/как лучше?
...
Рейтинг: 0 / 0
Обновление структуры БД
    #32522920
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Потому, что в IB/FB принудительное снятие коннекта не всегда проходит без последствий. Существует вероятность порчи базы. Пусть небольшая, но она есть. Кроме того, ShutDown не отключает юзеров фамилия которых SYSDBA, а также владельца/создателя (owner) базы. Ну и в дополнение к этому, если у тебя CS, то ещё и у него есть свои особенности.
Наиболее безопасно - сказать народу: "Тётеньки и дяденьки (буде такие есть)! Все нафик быстренько закрыли свои аппликации! Через 5 минут начну отстрел!". И только после этого делать ShutDown, но не -force, а -tran . Ну а далее - по обстоятельствам.
...
Рейтинг: 0 / 0
Обновление структуры БД
    #32522944
vis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...вздыхаю...
...
Рейтинг: 0 / 0
Обновление структуры БД
    #32522968
vis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Т.е. весь народ бегает с палками/громкоговорителями, выдёргивает сетевые кабели как со времен dbf/btr?

А как же прогресс? :)
...
Рейтинг: 0 / 0
Обновление структуры БД
    #32522971
vis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А, понял :) Прогресс - это выскакивающее окошко:
"Администратор запретил доступ к БД, а кассир вышел на пару часиков,
поэтому к обеду, если нормально проапдейтимся, Вы сможете начать работу"

:)
...
Рейтинг: 0 / 0
Обновление структуры БД
    #32523433
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не нужно ничего выдёргивать.
Делаешь -shut - tran.
Новые транзакции не стартуются.
Но старые транзакции юзеры должны завершить до окончания таймаута.
Если они сидят и спят, то ShutDown не пройдёт.
Смотришь кто из юзеров остался сидеть в базе.
Говоришь: "Убью, 6ля!" (персонально тому, кто спит).
Повторяешь -shut - tran.
Если прошло успешно, накатываешь апдейт.
Поднимаешь базу в on-line.
Даёшь отмашку: "Всё! Можно уже!"
Идёшь пить пиво.
...
Рейтинг: 0 / 0
Обновление структуры БД
    #32523581
vis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А подскажи-ка, пожалуйста, как можно из скрипта проверить
наличие подключенных юзеров и отвалиться?
...
Рейтинг: 0 / 0
Обновление структуры БД
    #32523635
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если у тебя CS, то можно средствами ОС.
Если же SS, то придётся писать свою небольшую утилиту командной строки,
которая бы дёргала isc_database_info( ) с параметром isc_info_user_names . Написать такую програмку - делов на пару часов. И я честно говоря удивлён, почему ничего подобного не включено в дистрибутив.
...
Рейтинг: 0 / 0
Обновление структуры БД
    #32524351
vis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кстати, недавно прикол был.

Разработал новый модуль - еду народу показывать.
На программистскую машину поставили FB1.5,сервер,клиента.
Пошарились, на вопросы поотвечал, сажу народ понажимать
кнопки... И тут бах! выскакивает ошибка :)

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

По дороге домой (ехать 2 часа) додумался... Есть у нас система переводов, которая использует IB6 :) А я увлекся CASE :)
...
Рейтинг: 0 / 0
Обновление структуры БД
    #32524363
Фотография mv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IBExpert -> Tools -> DataBase Comparer (Старая структура, Новая структура)=> => xxxSQLScript.SQL =>=> IBEScript
...
Рейтинг: 0 / 0
Обновление структуры БД
    #32524382
vis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2mv: а нахрена IBExpert, если я структуру создаю ручками в скрипте?
...
Рейтинг: 0 / 0
Обновление структуры БД
    #32524395
vis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А понял, это опыт руководящих товарищей, коммунистов с 1917 года :)

Просто мы с Мимо отклонились от темы к обсуждению локальной проблемы - посему позднее зажигание у меня :(
...
Рейтинг: 0 / 0
Обновление структуры БД
    #32528300
Voha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
к теме как выгнать быстро ибе напряга

>>Т.е. весь народ бегает с палками/громкоговорителями, выдёргивает сетевые
>>кабели как со времен dbf/btr?
можно и не бегать, я себе для таких целей поставил РАдмин, глянул какая Б (в смысле Бухгалтер или т.п.) не реагирует, предупреждаю персонально,если не реагирует сажусь удаленно и делаю все за нее.
может конечно это и не лучший способ но срабатывает.
...
Рейтинг: 0 / 0
30 сообщений из 30, показаны все 2 страниц
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Обновление структуры БД
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]