Форум: "Базы";
Текущий архив: 2008.03.23;
Скачать: [xml.tar.bz2];
ВнизИзменение БД? Найти похожие ветки
← →
thely (2007-10-30 16:42) [0]Подскажите мастера, может кто сталкивался со след. задачей:
Необходимо модернизировать БД Interbase, причем не знаем на каком шаге завершена предыдущая модернизация. Может кто знает статьи на эту тему?
← →
Jeer © (2007-10-30 16:45) [1]А что есть в вашем понимания модернизация ?
Моддинг ? :))
← →
Reindeer Moss Eater © (2007-10-30 16:47) [2]выполнить все шаги что были
← →
thely (2007-10-30 16:56) [3]Изменение структуры.
← →
Jeer © (2007-10-30 17:09) [4]
> thely (30.10.07 16:56) [3]
А в чем проблема ?
Есть исходная структура, есть желаемая - меняй.
← →
Reindeer Moss Eater © (2007-10-30 17:25) [5]причем не знаем на каком шаге завершена предыдущая модернизация
Нормально.
Собираетесь менять структуру, значит имеете доступ к БД даже по записи.
А чтобы прочитать текущую структуру - нужен всего лишь доступ по чтению.
И в чем же у нас трудности?
← →
PEAKTOP © (2007-10-30 17:41) [6]IBExpert:MainMenu\Tools\DataBase Compare
← →
Ega23 © (2007-10-30 18:38) [7]
> Необходимо модернизировать БД Interbase, причем не знаем
> на каком шаге завершена предыдущая модернизация. Может кто
> знает статьи на эту тему?
Для IB - не знаю, может какие особенности есть.
Для MSSQL:
В своё время, когда модель БД более-менее "устаканилась", все последующие телодвижения выполнялись с помощью patch-скрипта. Структура примерно такова:
if COLUMNPROPERTY(OBJECT_ID(N"[ClassEvents]"), "CLSEveNot", "precision") is NULL
begin
Print "Добавить поле ClassEvents.CLSEveNot - описание события";
ALTER TABLE ClassEvents add CLSEveNot varchar(1000) NOT NULL default "";
end;
go
if not exists (select 1
from sysobjects
where id = object_id("ModificationTyps")
and type = "U")
begin
create table ModificationTyps (
ModTypCod int not null,
ModTypNam varchar(64) not null,
ModTypLab varchar(64) not null,
ModTypOrd int not null,
ModTypMsk tinyint not null,
ModTypNot varchar(255) not null,
ModTypImg image null,
constraint PK_MODIFICATIONTYPS primary key (ModTypCod)
);
Print("Table created: ModificationTyps");
end;
go
if not exists (select 1
from sysobjects
where id = object_id("FieldFrames")
and type = "U")
begin
create table FieldFrames (
FldFrmCod int not null,
FldFrmTypCod int null,
FldFrmNam varchar(255) not null,
FldFrmLab varchar(255) not null,
FldFrmNot varchar(255) not null,
DataSQL varchar(255) not null,
KeyField varchar(255) not null,
ListField varchar(255) not null,
ValueTyp tinyint not null,
DefaultValue varchar(255) not null,
OutputSQL varchar(255) not null,
constraint PK_FIELDFRAMES primary key (FldFrmCod)
);
alter table FieldFrames
add constraint FK_FIELDFRA_REFERENCE_FIELDFRA foreign key (FldFrmTypCod)
references FieldFrameTyps (FldFrmTypCod)
Print("Table created: FieldFrames");
end;
go
if exists (select 1
from sysobjects
where id = object_id("dbo.Abonents")
and type = "U" and
(COLUMNPROPERTY(OBJECT_ID(N"[Abonents]"), "AbID", "precision") is not NULL)
)
drop table dbo.Abonents
go
и т.д.
Если надо что-то добавить-изменить-удалить - всё через патч-скрипт, который в обязательном порядке прогоняется на базе.
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2008.03.23;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.006 c