mirror of
https://github.com/ebean-orm/ebean.git
synced 2026-10-21 06:41:12 +00:00
Postgres: Drops history support during alter and restores it after that
This commit is contained in:
@@ -171,35 +171,6 @@ alter table migtest_e_history6 add column sys_period tstzrange not null default
|
||||
-- apply post alter
|
||||
create table migtest_e_history2_history(like migtest_e_history2);
|
||||
create view migtest_e_history2_with_history as select * from migtest_e_history2 union all select * from migtest_e_history2_history;
|
||||
|
||||
create table migtest_e_history3_history(like migtest_e_history3);
|
||||
create view migtest_e_history3_with_history as select * from migtest_e_history3 union all select * from migtest_e_history3_history;
|
||||
|
||||
create table migtest_e_history4_history(like migtest_e_history4);
|
||||
create view migtest_e_history4_with_history as select * from migtest_e_history4 union all select * from migtest_e_history4_history;
|
||||
|
||||
create table migtest_e_history5_history(like migtest_e_history5);
|
||||
create view migtest_e_history5_with_history as select * from migtest_e_history5 union all select * from migtest_e_history5_history;
|
||||
|
||||
create table migtest_e_history6_history(like migtest_e_history6);
|
||||
create view migtest_e_history6_with_history as select * from migtest_e_history6 union all select * from migtest_e_history6_history;
|
||||
|
||||
-- foreign keys and indices
|
||||
create index ix_migtest_fk_cascade_one_id on migtest_fk_cascade (one_id);
|
||||
alter table migtest_fk_cascade add constraint fk_migtest_fk_cascade_one_id foreign key (one_id) references migtest_fk_cascade_one (id) on delete cascade on update restrict;
|
||||
|
||||
create index ix_migtest_fk_set_null_one_id on migtest_fk_set_null (one_id);
|
||||
alter table migtest_fk_set_null add constraint fk_migtest_fk_set_null_one_id foreign key (one_id) references migtest_fk_one (id) on delete set null on update restrict;
|
||||
|
||||
create index ix_migtest_e_basic_eref_id on migtest_e_basic (eref_id);
|
||||
alter table migtest_e_basic add constraint fk_migtest_e_basic_eref_id foreign key (eref_id) references migtest_e_ref (id) on delete restrict on update restrict;
|
||||
|
||||
create index if not exists ix_migtest_e_basic_indextest1 on migtest_e_basic (indextest1);
|
||||
create index if not exists ix_migtest_e_basic_indextest5 on migtest_e_basic (indextest5);
|
||||
create index idxd_migtest_0 on migtest_oto_child using hash (upper(name)) where upper(name) = 'JIM';
|
||||
create index concurrently if not exists ix_migtest_oto_child_lowername_id on migtest_oto_child (lower(name),id);
|
||||
create index if not exists ix_migtest_oto_child_lowername on migtest_oto_child (lower(name));
|
||||
-- apply history trigger
|
||||
create or replace function migtest_e_history2_history_version() returns trigger as $$
|
||||
declare
|
||||
lowerTs timestamptz;
|
||||
@@ -222,6 +193,9 @@ create trigger migtest_e_history2_history_upd
|
||||
before update or delete on migtest_e_history2
|
||||
for each row execute procedure migtest_e_history2_history_version();
|
||||
|
||||
|
||||
create table migtest_e_history3_history(like migtest_e_history3);
|
||||
create view migtest_e_history3_with_history as select * from migtest_e_history3 union all select * from migtest_e_history3_history;
|
||||
create or replace function migtest_e_history3_history_version() returns trigger as $$
|
||||
declare
|
||||
lowerTs timestamptz;
|
||||
@@ -244,6 +218,9 @@ create trigger migtest_e_history3_history_upd
|
||||
before update or delete on migtest_e_history3
|
||||
for each row execute procedure migtest_e_history3_history_version();
|
||||
|
||||
|
||||
create table migtest_e_history4_history(like migtest_e_history4);
|
||||
create view migtest_e_history4_with_history as select * from migtest_e_history4 union all select * from migtest_e_history4_history;
|
||||
create or replace function migtest_e_history4_history_version() returns trigger as $$
|
||||
declare
|
||||
lowerTs timestamptz;
|
||||
@@ -266,6 +243,9 @@ create trigger migtest_e_history4_history_upd
|
||||
before update or delete on migtest_e_history4
|
||||
for each row execute procedure migtest_e_history4_history_version();
|
||||
|
||||
|
||||
create table migtest_e_history5_history(like migtest_e_history5);
|
||||
create view migtest_e_history5_with_history as select * from migtest_e_history5 union all select * from migtest_e_history5_history;
|
||||
create or replace function migtest_e_history5_history_version() returns trigger as $$
|
||||
declare
|
||||
lowerTs timestamptz;
|
||||
@@ -288,6 +268,9 @@ create trigger migtest_e_history5_history_upd
|
||||
before update or delete on migtest_e_history5
|
||||
for each row execute procedure migtest_e_history5_history_version();
|
||||
|
||||
|
||||
create table migtest_e_history6_history(like migtest_e_history6);
|
||||
create view migtest_e_history6_with_history as select * from migtest_e_history6 union all select * from migtest_e_history6_history;
|
||||
create or replace function migtest_e_history6_history_version() returns trigger as $$
|
||||
declare
|
||||
lowerTs timestamptz;
|
||||
@@ -310,3 +293,19 @@ create trigger migtest_e_history6_history_upd
|
||||
before update or delete on migtest_e_history6
|
||||
for each row execute procedure migtest_e_history6_history_version();
|
||||
|
||||
|
||||
-- foreign keys and indices
|
||||
create index ix_migtest_fk_cascade_one_id on migtest_fk_cascade (one_id);
|
||||
alter table migtest_fk_cascade add constraint fk_migtest_fk_cascade_one_id foreign key (one_id) references migtest_fk_cascade_one (id) on delete cascade on update restrict;
|
||||
|
||||
create index ix_migtest_fk_set_null_one_id on migtest_fk_set_null (one_id);
|
||||
alter table migtest_fk_set_null add constraint fk_migtest_fk_set_null_one_id foreign key (one_id) references migtest_fk_one (id) on delete set null on update restrict;
|
||||
|
||||
create index ix_migtest_e_basic_eref_id on migtest_e_basic (eref_id);
|
||||
alter table migtest_e_basic add constraint fk_migtest_e_basic_eref_id foreign key (eref_id) references migtest_e_ref (id) on delete restrict on update restrict;
|
||||
|
||||
create index if not exists ix_migtest_e_basic_indextest1 on migtest_e_basic (indextest1);
|
||||
create index if not exists ix_migtest_e_basic_indextest5 on migtest_e_basic (indextest5);
|
||||
create index idxd_migtest_0 on migtest_oto_child using hash (upper(name)) where upper(name) = 'JIM';
|
||||
create index concurrently if not exists ix_migtest_oto_child_lowername_id on migtest_oto_child (lower(name),id);
|
||||
create index if not exists ix_migtest_oto_child_lowername on migtest_oto_child (lower(name));
|
||||
|
||||
@@ -12,10 +12,6 @@ drop index if exists ix_migtest_e_basic_indextest5;
|
||||
drop index if exists idxd_migtest_0;
|
||||
drop index concurrently if exists ix_migtest_oto_child_lowername_id;
|
||||
drop index if exists ix_migtest_oto_child_lowername;
|
||||
drop view if exists migtest_e_history2_with_history;
|
||||
drop view if exists migtest_e_history3_with_history;
|
||||
drop view if exists migtest_e_history4_with_history;
|
||||
drop view if exists migtest_e_history5_with_history;
|
||||
-- apply changes
|
||||
create table migtest_e_user (
|
||||
id integer generated by default as identity not null,
|
||||
@@ -50,6 +46,22 @@ alter table migtest_e_history alter column test_string TYPE bigint USING (test_s
|
||||
|
||||
-- NOTE: table has @History - special migration may be necessary
|
||||
update migtest_e_history2 set test_string = 'unknown' where test_string is null;
|
||||
drop trigger if exists migtest_e_history2_history_upd on migtest_e_history2 cascade;
|
||||
drop function if exists migtest_e_history2_history_version();
|
||||
|
||||
drop view migtest_e_history2_with_history;
|
||||
drop trigger if exists migtest_e_history3_history_upd on migtest_e_history3 cascade;
|
||||
drop function if exists migtest_e_history3_history_version();
|
||||
|
||||
drop view migtest_e_history3_with_history;
|
||||
drop trigger if exists migtest_e_history4_history_upd on migtest_e_history4 cascade;
|
||||
drop function if exists migtest_e_history4_history_version();
|
||||
|
||||
drop view migtest_e_history4_with_history;
|
||||
drop trigger if exists migtest_e_history5_history_upd on migtest_e_history5 cascade;
|
||||
drop function if exists migtest_e_history5_history_version();
|
||||
|
||||
drop view migtest_e_history5_with_history;
|
||||
|
||||
-- NOTE: table has @History - special migration may be necessary
|
||||
update migtest_e_history6 set test_number1 = 42 where test_number1 is null;
|
||||
@@ -100,9 +112,123 @@ alter table migtest_e_basic add constraint uq_migtest_e_basic_indextest4 unique
|
||||
alter table migtest_e_basic add constraint uq_migtest_e_basic_indextest5 unique (indextest5);
|
||||
create table migtest_e_history_history(like migtest_e_history);
|
||||
create view migtest_e_history_with_history as select * from migtest_e_history union all select * from migtest_e_history_history;
|
||||
create or replace function migtest_e_history_history_version() returns trigger as $$
|
||||
declare
|
||||
lowerTs timestamptz;
|
||||
upperTs timestamptz;
|
||||
begin
|
||||
lowerTs = lower(OLD.sys_period);
|
||||
upperTs = greatest(lowerTs + '1 microsecond',current_timestamp);
|
||||
if (TG_OP = 'UPDATE') then
|
||||
insert into migtest_e_history_history (sys_period,id, test_string) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_string);
|
||||
NEW.sys_period = tstzrange(upperTs,null);
|
||||
return new;
|
||||
elsif (TG_OP = 'DELETE') then
|
||||
insert into migtest_e_history_history (sys_period,id, test_string) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_string);
|
||||
return old;
|
||||
end if;
|
||||
end;
|
||||
$$ LANGUAGE plpgsql;
|
||||
|
||||
create trigger migtest_e_history_history_upd
|
||||
before update or delete on migtest_e_history
|
||||
for each row execute procedure migtest_e_history_history_version();
|
||||
|
||||
|
||||
comment on column migtest_e_history.test_string is 'Column altered to long now';
|
||||
comment on table migtest_e_history is 'We have history now';
|
||||
create view migtest_e_history2_with_history as select * from migtest_e_history2 union all select * from migtest_e_history2_history;
|
||||
create or replace function migtest_e_history2_history_version() returns trigger as $$
|
||||
declare
|
||||
lowerTs timestamptz;
|
||||
upperTs timestamptz;
|
||||
begin
|
||||
lowerTs = lower(OLD.sys_period);
|
||||
upperTs = greatest(lowerTs + '1 microsecond',current_timestamp);
|
||||
if (TG_OP = 'UPDATE') then
|
||||
insert into migtest_e_history2_history (sys_period,id, test_string, test_string3, new_column, obsolete_string1, obsolete_string2) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_string, OLD.test_string3, OLD.new_column, OLD.obsolete_string1, OLD.obsolete_string2);
|
||||
NEW.sys_period = tstzrange(upperTs,null);
|
||||
return new;
|
||||
elsif (TG_OP = 'DELETE') then
|
||||
insert into migtest_e_history2_history (sys_period,id, test_string, test_string3, new_column, obsolete_string1, obsolete_string2) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_string, OLD.test_string3, OLD.new_column, OLD.obsolete_string1, OLD.obsolete_string2);
|
||||
return old;
|
||||
end if;
|
||||
end;
|
||||
$$ LANGUAGE plpgsql;
|
||||
|
||||
create trigger migtest_e_history2_history_upd
|
||||
before update or delete on migtest_e_history2
|
||||
for each row execute procedure migtest_e_history2_history_version();
|
||||
|
||||
create view migtest_e_history3_with_history as select * from migtest_e_history3 union all select * from migtest_e_history3_history;
|
||||
create or replace function migtest_e_history3_history_version() returns trigger as $$
|
||||
declare
|
||||
lowerTs timestamptz;
|
||||
upperTs timestamptz;
|
||||
begin
|
||||
lowerTs = lower(OLD.sys_period);
|
||||
upperTs = greatest(lowerTs + '1 microsecond',current_timestamp);
|
||||
if (TG_OP = 'UPDATE') then
|
||||
insert into migtest_e_history3_history (sys_period,id) values (tstzrange(lowerTs,upperTs), OLD.id);
|
||||
NEW.sys_period = tstzrange(upperTs,null);
|
||||
return new;
|
||||
elsif (TG_OP = 'DELETE') then
|
||||
insert into migtest_e_history3_history (sys_period,id) values (tstzrange(lowerTs,upperTs), OLD.id);
|
||||
return old;
|
||||
end if;
|
||||
end;
|
||||
$$ LANGUAGE plpgsql;
|
||||
|
||||
create trigger migtest_e_history3_history_upd
|
||||
before update or delete on migtest_e_history3
|
||||
for each row execute procedure migtest_e_history3_history_version();
|
||||
|
||||
create view migtest_e_history4_with_history as select * from migtest_e_history4 union all select * from migtest_e_history4_history;
|
||||
create or replace function migtest_e_history4_history_version() returns trigger as $$
|
||||
declare
|
||||
lowerTs timestamptz;
|
||||
upperTs timestamptz;
|
||||
begin
|
||||
lowerTs = lower(OLD.sys_period);
|
||||
upperTs = greatest(lowerTs + '1 microsecond',current_timestamp);
|
||||
if (TG_OP = 'UPDATE') then
|
||||
insert into migtest_e_history4_history (sys_period,id, test_number) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_number);
|
||||
NEW.sys_period = tstzrange(upperTs,null);
|
||||
return new;
|
||||
elsif (TG_OP = 'DELETE') then
|
||||
insert into migtest_e_history4_history (sys_period,id, test_number) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_number);
|
||||
return old;
|
||||
end if;
|
||||
end;
|
||||
$$ LANGUAGE plpgsql;
|
||||
|
||||
create trigger migtest_e_history4_history_upd
|
||||
before update or delete on migtest_e_history4
|
||||
for each row execute procedure migtest_e_history4_history_version();
|
||||
|
||||
create view migtest_e_history5_with_history as select * from migtest_e_history5 union all select * from migtest_e_history5_history;
|
||||
create or replace function migtest_e_history5_history_version() returns trigger as $$
|
||||
declare
|
||||
lowerTs timestamptz;
|
||||
upperTs timestamptz;
|
||||
begin
|
||||
lowerTs = lower(OLD.sys_period);
|
||||
upperTs = greatest(lowerTs + '1 microsecond',current_timestamp);
|
||||
if (TG_OP = 'UPDATE') then
|
||||
insert into migtest_e_history5_history (sys_period,id, test_number, test_boolean) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_number, OLD.test_boolean);
|
||||
NEW.sys_period = tstzrange(upperTs,null);
|
||||
return new;
|
||||
elsif (TG_OP = 'DELETE') then
|
||||
insert into migtest_e_history5_history (sys_period,id, test_number, test_boolean) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_number, OLD.test_boolean);
|
||||
return old;
|
||||
end if;
|
||||
end;
|
||||
$$ LANGUAGE plpgsql;
|
||||
|
||||
create trigger migtest_e_history5_history_upd
|
||||
before update or delete on migtest_e_history5
|
||||
for each row execute procedure migtest_e_history5_history_version();
|
||||
|
||||
-- foreign keys and indices
|
||||
create index ix_migtest_mtm_c_migtest_mtm_m_migtest_mtm_c on migtest_mtm_c_migtest_mtm_m (migtest_mtm_c_id);
|
||||
alter table migtest_mtm_c_migtest_mtm_m add constraint fk_migtest_mtm_c_migtest_mtm_m_migtest_mtm_c foreign key (migtest_mtm_c_id) references migtest_mtm_c (id) on delete restrict on update restrict;
|
||||
@@ -133,111 +259,3 @@ alter table migtest_oto_child add constraint fk_migtest_oto_child_master_id fore
|
||||
create index if not exists ix_migtest_e_basic_indextest3 on migtest_e_basic (indextest3);
|
||||
create index if not exists ix_migtest_e_basic_indextest6 on migtest_e_basic (indextest6);
|
||||
create index if not exists ix_migtest_oto_child_name on migtest_oto_child (name);
|
||||
-- apply history view
|
||||
create view migtest_e_history2_with_history as select * from migtest_e_history2 union all select * from migtest_e_history2_history;
|
||||
|
||||
create view migtest_e_history3_with_history as select * from migtest_e_history3 union all select * from migtest_e_history3_history;
|
||||
|
||||
create view migtest_e_history4_with_history as select * from migtest_e_history4 union all select * from migtest_e_history4_history;
|
||||
|
||||
create view migtest_e_history5_with_history as select * from migtest_e_history5 union all select * from migtest_e_history5_history;
|
||||
|
||||
-- apply history trigger
|
||||
create or replace function migtest_e_history_history_version() returns trigger as $$
|
||||
declare
|
||||
lowerTs timestamptz;
|
||||
upperTs timestamptz;
|
||||
begin
|
||||
lowerTs = lower(OLD.sys_period);
|
||||
upperTs = greatest(lowerTs + '1 microsecond',current_timestamp);
|
||||
if (TG_OP = 'UPDATE') then
|
||||
insert into migtest_e_history_history (sys_period,id, test_string) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_string);
|
||||
NEW.sys_period = tstzrange(upperTs,null);
|
||||
return new;
|
||||
elsif (TG_OP = 'DELETE') then
|
||||
insert into migtest_e_history_history (sys_period,id, test_string) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_string);
|
||||
return old;
|
||||
end if;
|
||||
end;
|
||||
$$ LANGUAGE plpgsql;
|
||||
|
||||
create trigger migtest_e_history_history_upd
|
||||
before update or delete on migtest_e_history
|
||||
for each row execute procedure migtest_e_history_history_version();
|
||||
|
||||
-- changes: [add test_string2, add test_string3, add new_column]
|
||||
create or replace function migtest_e_history2_history_version() returns trigger as $$
|
||||
declare
|
||||
lowerTs timestamptz;
|
||||
upperTs timestamptz;
|
||||
begin
|
||||
lowerTs = lower(OLD.sys_period);
|
||||
upperTs = greatest(lowerTs + '1 microsecond',current_timestamp);
|
||||
if (TG_OP = 'UPDATE') then
|
||||
insert into migtest_e_history2_history (sys_period,id, test_string, test_string3, new_column, obsolete_string1, obsolete_string2) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_string, OLD.test_string3, OLD.new_column, OLD.obsolete_string1, OLD.obsolete_string2);
|
||||
NEW.sys_period = tstzrange(upperTs,null);
|
||||
return new;
|
||||
elsif (TG_OP = 'DELETE') then
|
||||
insert into migtest_e_history2_history (sys_period,id, test_string, test_string3, new_column, obsolete_string1, obsolete_string2) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_string, OLD.test_string3, OLD.new_column, OLD.obsolete_string1, OLD.obsolete_string2);
|
||||
return old;
|
||||
end if;
|
||||
end;
|
||||
$$ LANGUAGE plpgsql;
|
||||
|
||||
-- changes: [exclude test_string]
|
||||
create or replace function migtest_e_history3_history_version() returns trigger as $$
|
||||
declare
|
||||
lowerTs timestamptz;
|
||||
upperTs timestamptz;
|
||||
begin
|
||||
lowerTs = lower(OLD.sys_period);
|
||||
upperTs = greatest(lowerTs + '1 microsecond',current_timestamp);
|
||||
if (TG_OP = 'UPDATE') then
|
||||
insert into migtest_e_history3_history (sys_period,id) values (tstzrange(lowerTs,upperTs), OLD.id);
|
||||
NEW.sys_period = tstzrange(upperTs,null);
|
||||
return new;
|
||||
elsif (TG_OP = 'DELETE') then
|
||||
insert into migtest_e_history3_history (sys_period,id) values (tstzrange(lowerTs,upperTs), OLD.id);
|
||||
return old;
|
||||
end if;
|
||||
end;
|
||||
$$ LANGUAGE plpgsql;
|
||||
|
||||
-- changes: [alter test_number]
|
||||
create or replace function migtest_e_history4_history_version() returns trigger as $$
|
||||
declare
|
||||
lowerTs timestamptz;
|
||||
upperTs timestamptz;
|
||||
begin
|
||||
lowerTs = lower(OLD.sys_period);
|
||||
upperTs = greatest(lowerTs + '1 microsecond',current_timestamp);
|
||||
if (TG_OP = 'UPDATE') then
|
||||
insert into migtest_e_history4_history (sys_period,id, test_number) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_number);
|
||||
NEW.sys_period = tstzrange(upperTs,null);
|
||||
return new;
|
||||
elsif (TG_OP = 'DELETE') then
|
||||
insert into migtest_e_history4_history (sys_period,id, test_number) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_number);
|
||||
return old;
|
||||
end if;
|
||||
end;
|
||||
$$ LANGUAGE plpgsql;
|
||||
|
||||
-- changes: [add test_boolean]
|
||||
create or replace function migtest_e_history5_history_version() returns trigger as $$
|
||||
declare
|
||||
lowerTs timestamptz;
|
||||
upperTs timestamptz;
|
||||
begin
|
||||
lowerTs = lower(OLD.sys_period);
|
||||
upperTs = greatest(lowerTs + '1 microsecond',current_timestamp);
|
||||
if (TG_OP = 'UPDATE') then
|
||||
insert into migtest_e_history5_history (sys_period,id, test_number, test_boolean) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_number, OLD.test_boolean);
|
||||
NEW.sys_period = tstzrange(upperTs,null);
|
||||
return new;
|
||||
elsif (TG_OP = 'DELETE') then
|
||||
insert into migtest_e_history5_history (sys_period,id, test_number, test_boolean) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_number, OLD.test_boolean);
|
||||
return old;
|
||||
end if;
|
||||
end;
|
||||
$$ LANGUAGE plpgsql;
|
||||
|
||||
|
||||
+11
-8
@@ -1,6 +1,9 @@
|
||||
-- Migrationscripts for ebean unittest
|
||||
-- drop dependencies
|
||||
drop view if exists migtest_e_history2_with_history;
|
||||
-- apply changes
|
||||
drop trigger if exists migtest_e_history2_history_upd on migtest_e_history2 cascade;
|
||||
drop function if exists migtest_e_history2_history_version();
|
||||
|
||||
drop view migtest_e_history2_with_history;
|
||||
-- apply alter tables
|
||||
alter table migtest_e_basic drop column description_file;
|
||||
alter table migtest_e_basic drop column old_boolean;
|
||||
@@ -11,13 +14,7 @@ alter table migtest_e_history2 drop column obsolete_string2;
|
||||
alter table migtest_e_history2_history drop column obsolete_string1;
|
||||
alter table migtest_e_history2_history drop column obsolete_string2;
|
||||
-- apply post alter
|
||||
drop table if exists migtest_e_ref cascade;
|
||||
drop sequence if exists migtest_e_ref_seq;
|
||||
-- apply history view
|
||||
create view migtest_e_history2_with_history as select * from migtest_e_history2 union all select * from migtest_e_history2_history;
|
||||
|
||||
-- apply history trigger
|
||||
-- changes: [drop obsolete_string1, drop obsolete_string2]
|
||||
create or replace function migtest_e_history2_history_version() returns trigger as $$
|
||||
declare
|
||||
lowerTs timestamptz;
|
||||
@@ -36,3 +33,9 @@ begin
|
||||
end;
|
||||
$$ LANGUAGE plpgsql;
|
||||
|
||||
create trigger migtest_e_history2_history_upd
|
||||
before update or delete on migtest_e_history2
|
||||
for each row execute procedure migtest_e_history2_history_version();
|
||||
|
||||
drop table if exists migtest_e_ref cascade;
|
||||
drop sequence if exists migtest_e_ref_seq;
|
||||
|
||||
@@ -16,9 +16,6 @@ alter table migtest_e_basic drop constraint uq_migtest_e_basic_indextest5;
|
||||
alter table migtest_e_enum drop constraint if exists ck_migtest_e_enum_test_status;
|
||||
drop index if exists ix_migtest_e_basic_indextest3;
|
||||
drop index if exists ix_migtest_e_basic_indextest6;
|
||||
drop view if exists migtest_e_history2_with_history;
|
||||
drop view if exists migtest_e_history3_with_history;
|
||||
drop view if exists migtest_e_history4_with_history;
|
||||
-- apply changes
|
||||
create table migtest_e_ref (
|
||||
id integer generated by default as identity not null,
|
||||
@@ -31,6 +28,18 @@ create table migtest_e_ref (
|
||||
update migtest_e_basic set status2 = 'N' where status2 is null;
|
||||
|
||||
update migtest_e_basic set user_id = 23 where user_id is null;
|
||||
drop trigger if exists migtest_e_history2_history_upd on migtest_e_history2 cascade;
|
||||
drop function if exists migtest_e_history2_history_version();
|
||||
|
||||
drop view migtest_e_history2_with_history;
|
||||
drop trigger if exists migtest_e_history3_history_upd on migtest_e_history3 cascade;
|
||||
drop function if exists migtest_e_history3_history_version();
|
||||
|
||||
drop view migtest_e_history3_with_history;
|
||||
drop trigger if exists migtest_e_history4_history_upd on migtest_e_history4 cascade;
|
||||
drop function if exists migtest_e_history4_history_version();
|
||||
|
||||
drop view migtest_e_history4_with_history;
|
||||
|
||||
-- NOTE: table has @History - special migration may be necessary
|
||||
update migtest_e_history6 set test_number2 = 7 where test_number2 is null;
|
||||
@@ -66,26 +75,7 @@ alter table migtest_e_basic add constraint uq_migtest_e_basic_indextest6 unique
|
||||
alter table migtest_e_enum add constraint ck_migtest_e_enum_test_status check ( test_status in ('N','A','I'));
|
||||
comment on column migtest_e_history.test_string is '';
|
||||
comment on table migtest_e_history is '';
|
||||
-- foreign keys and indices
|
||||
alter table migtest_fk_cascade add constraint fk_migtest_fk_cascade_one_id foreign key (one_id) references migtest_fk_cascade_one (id) on delete cascade on update restrict;
|
||||
alter table migtest_fk_set_null add constraint fk_migtest_fk_set_null_one_id foreign key (one_id) references migtest_fk_one (id) on delete set null on update restrict;
|
||||
create index ix_migtest_e_basic_eref_id on migtest_e_basic (eref_id);
|
||||
alter table migtest_e_basic add constraint fk_migtest_e_basic_eref_id foreign key (eref_id) references migtest_e_ref (id) on delete restrict on update restrict;
|
||||
|
||||
create index if not exists ix_migtest_e_basic_indextest1 on migtest_e_basic (indextest1);
|
||||
create index if not exists ix_migtest_e_basic_indextest5 on migtest_e_basic (indextest5);
|
||||
create index if not exists ix_m12_otoc71 on migtest_oto_child (name);
|
||||
create unique index if not exists uq_m12_otoc71 on migtest_oto_child (lower(name));
|
||||
create unique index if not exists ix_migtest_oto_master_lowername on migtest_oto_master (lower(name));
|
||||
-- apply history view
|
||||
create view migtest_e_history2_with_history as select * from migtest_e_history2 union all select * from migtest_e_history2_history;
|
||||
|
||||
create view migtest_e_history3_with_history as select * from migtest_e_history3 union all select * from migtest_e_history3_history;
|
||||
|
||||
create view migtest_e_history4_with_history as select * from migtest_e_history4 union all select * from migtest_e_history4_history;
|
||||
|
||||
-- apply history trigger
|
||||
-- changes: [add obsolete_string1, add obsolete_string2]
|
||||
create or replace function migtest_e_history2_history_version() returns trigger as $$
|
||||
declare
|
||||
lowerTs timestamptz;
|
||||
@@ -104,7 +94,11 @@ begin
|
||||
end;
|
||||
$$ LANGUAGE plpgsql;
|
||||
|
||||
-- changes: [include test_string]
|
||||
create trigger migtest_e_history2_history_upd
|
||||
before update or delete on migtest_e_history2
|
||||
for each row execute procedure migtest_e_history2_history_version();
|
||||
|
||||
create view migtest_e_history3_with_history as select * from migtest_e_history3 union all select * from migtest_e_history3_history;
|
||||
create or replace function migtest_e_history3_history_version() returns trigger as $$
|
||||
declare
|
||||
lowerTs timestamptz;
|
||||
@@ -123,7 +117,11 @@ begin
|
||||
end;
|
||||
$$ LANGUAGE plpgsql;
|
||||
|
||||
-- changes: [alter test_number]
|
||||
create trigger migtest_e_history3_history_upd
|
||||
before update or delete on migtest_e_history3
|
||||
for each row execute procedure migtest_e_history3_history_version();
|
||||
|
||||
create view migtest_e_history4_with_history as select * from migtest_e_history4 union all select * from migtest_e_history4_history;
|
||||
create or replace function migtest_e_history4_history_version() returns trigger as $$
|
||||
declare
|
||||
lowerTs timestamptz;
|
||||
@@ -142,3 +140,18 @@ begin
|
||||
end;
|
||||
$$ LANGUAGE plpgsql;
|
||||
|
||||
create trigger migtest_e_history4_history_upd
|
||||
before update or delete on migtest_e_history4
|
||||
for each row execute procedure migtest_e_history4_history_version();
|
||||
|
||||
-- foreign keys and indices
|
||||
alter table migtest_fk_cascade add constraint fk_migtest_fk_cascade_one_id foreign key (one_id) references migtest_fk_cascade_one (id) on delete cascade on update restrict;
|
||||
alter table migtest_fk_set_null add constraint fk_migtest_fk_set_null_one_id foreign key (one_id) references migtest_fk_one (id) on delete set null on update restrict;
|
||||
create index ix_migtest_e_basic_eref_id on migtest_e_basic (eref_id);
|
||||
alter table migtest_e_basic add constraint fk_migtest_e_basic_eref_id foreign key (eref_id) references migtest_e_ref (id) on delete restrict on update restrict;
|
||||
|
||||
create index if not exists ix_migtest_e_basic_indextest1 on migtest_e_basic (indextest1);
|
||||
create index if not exists ix_migtest_e_basic_indextest5 on migtest_e_basic (indextest5);
|
||||
create index if not exists ix_m12_otoc71 on migtest_oto_child (name);
|
||||
create unique index if not exists uq_m12_otoc71 on migtest_oto_child (lower(name));
|
||||
create unique index if not exists ix_migtest_oto_master_lowername on migtest_oto_master (lower(name));
|
||||
|
||||
+23
-14
@@ -6,8 +6,15 @@ drop function if exists migtest_e_history_history_version();
|
||||
drop view migtest_e_history_with_history;
|
||||
drop table migtest_e_history_history;
|
||||
|
||||
drop view if exists migtest_e_history2_with_history;
|
||||
drop view if exists migtest_e_history5_with_history;
|
||||
-- apply changes
|
||||
drop trigger if exists migtest_e_history2_history_upd on migtest_e_history2 cascade;
|
||||
drop function if exists migtest_e_history2_history_version();
|
||||
|
||||
drop view migtest_e_history2_with_history;
|
||||
drop trigger if exists migtest_e_history5_history_upd on migtest_e_history5 cascade;
|
||||
drop function if exists migtest_e_history5_history_version();
|
||||
|
||||
drop view migtest_e_history5_with_history;
|
||||
-- apply alter tables
|
||||
alter table migtest_ckey_detail drop column one_key;
|
||||
alter table migtest_ckey_detail drop column two_key;
|
||||
@@ -29,18 +36,7 @@ alter table migtest_e_history5_history drop column test_boolean;
|
||||
alter table migtest_e_softdelete drop column deleted;
|
||||
alter table migtest_oto_child drop column master_id;
|
||||
-- apply post alter
|
||||
drop table if exists migtest_e_user cascade;
|
||||
drop sequence if exists migtest_e_user_seq;
|
||||
drop table if exists migtest_mtm_c_migtest_mtm_m cascade;
|
||||
drop table if exists migtest_mtm_m_migtest_mtm_c cascade;
|
||||
drop table if exists migtest_mtm_m_phone_numbers cascade;
|
||||
-- apply history view
|
||||
create view migtest_e_history2_with_history as select * from migtest_e_history2 union all select * from migtest_e_history2_history;
|
||||
|
||||
create view migtest_e_history5_with_history as select * from migtest_e_history5 union all select * from migtest_e_history5_history;
|
||||
|
||||
-- apply history trigger
|
||||
-- changes: [drop test_string2, drop test_string3, drop new_column]
|
||||
create or replace function migtest_e_history2_history_version() returns trigger as $$
|
||||
declare
|
||||
lowerTs timestamptz;
|
||||
@@ -59,7 +55,11 @@ begin
|
||||
end;
|
||||
$$ LANGUAGE plpgsql;
|
||||
|
||||
-- changes: [drop test_boolean]
|
||||
create trigger migtest_e_history2_history_upd
|
||||
before update or delete on migtest_e_history2
|
||||
for each row execute procedure migtest_e_history2_history_version();
|
||||
|
||||
create view migtest_e_history5_with_history as select * from migtest_e_history5 union all select * from migtest_e_history5_history;
|
||||
create or replace function migtest_e_history5_history_version() returns trigger as $$
|
||||
declare
|
||||
lowerTs timestamptz;
|
||||
@@ -78,3 +78,12 @@ begin
|
||||
end;
|
||||
$$ LANGUAGE plpgsql;
|
||||
|
||||
create trigger migtest_e_history5_history_upd
|
||||
before update or delete on migtest_e_history5
|
||||
for each row execute procedure migtest_e_history5_history_version();
|
||||
|
||||
drop table if exists migtest_e_user cascade;
|
||||
drop sequence if exists migtest_e_user_seq;
|
||||
drop table if exists migtest_mtm_c_migtest_mtm_m cascade;
|
||||
drop table if exists migtest_mtm_m_migtest_mtm_c cascade;
|
||||
drop table if exists migtest_mtm_m_phone_numbers cascade;
|
||||
|
||||
+5
-5
@@ -1,8 +1,8 @@
|
||||
1040369575, 1.0__initial.sql
|
||||
45294494, 1.1.sql
|
||||
1770819182, 1.2__dropsFor_1.1.sql
|
||||
-223959883, 1.3.sql
|
||||
739723472, 1.4__dropsFor_1.3.sql
|
||||
-125847545, 1.0__initial.sql
|
||||
1782158364, 1.1.sql
|
||||
-1098989118, 1.2__dropsFor_1.1.sql
|
||||
-1852757328, 1.3.sql
|
||||
1729345905, 1.4__dropsFor_1.3.sql
|
||||
783227075, R__multi_comments.sql
|
||||
561281075, R__order_views.sql
|
||||
283077354, R__pg_indexes.sql
|
||||
|
||||
+28
-29
@@ -171,35 +171,6 @@ alter table migtest_e_history6 add column sys_period tstzrange not null default
|
||||
-- apply post alter
|
||||
create table migtest_e_history2_history(like migtest_e_history2);
|
||||
create view migtest_e_history2_with_history as select * from migtest_e_history2 union all select * from migtest_e_history2_history;
|
||||
|
||||
create table migtest_e_history3_history(like migtest_e_history3);
|
||||
create view migtest_e_history3_with_history as select * from migtest_e_history3 union all select * from migtest_e_history3_history;
|
||||
|
||||
create table migtest_e_history4_history(like migtest_e_history4);
|
||||
create view migtest_e_history4_with_history as select * from migtest_e_history4 union all select * from migtest_e_history4_history;
|
||||
|
||||
create table migtest_e_history5_history(like migtest_e_history5);
|
||||
create view migtest_e_history5_with_history as select * from migtest_e_history5 union all select * from migtest_e_history5_history;
|
||||
|
||||
create table migtest_e_history6_history(like migtest_e_history6);
|
||||
create view migtest_e_history6_with_history as select * from migtest_e_history6 union all select * from migtest_e_history6_history;
|
||||
|
||||
-- foreign keys and indices
|
||||
create index ix_migtest_fk_cascade_one_id on migtest_fk_cascade (one_id);
|
||||
alter table migtest_fk_cascade add constraint fk_migtest_fk_cascade_one_id foreign key (one_id) references migtest_fk_cascade_one (id) on delete cascade on update restrict;
|
||||
|
||||
create index ix_migtest_fk_set_null_one_id on migtest_fk_set_null (one_id);
|
||||
alter table migtest_fk_set_null add constraint fk_migtest_fk_set_null_one_id foreign key (one_id) references migtest_fk_one (id) on delete set null on update restrict;
|
||||
|
||||
create index ix_migtest_e_basic_eref_id on migtest_e_basic (eref_id);
|
||||
alter table migtest_e_basic add constraint fk_migtest_e_basic_eref_id foreign key (eref_id) references migtest_e_ref (id) on delete restrict on update restrict;
|
||||
|
||||
create index if not exists ix_migtest_e_basic_indextest1 on migtest_e_basic (indextest1);
|
||||
create index if not exists ix_migtest_e_basic_indextest5 on migtest_e_basic (indextest5);
|
||||
create index idxd_migtest_0 on migtest_oto_child using hash (upper(name)) where upper(name) = 'JIM';
|
||||
create index concurrently if not exists ix_migtest_oto_child_lowername_id on migtest_oto_child (lower(name),id);
|
||||
create index if not exists ix_migtest_oto_child_lowername on migtest_oto_child (lower(name));
|
||||
-- apply history trigger
|
||||
create or replace function migtest_e_history2_history_version() returns trigger as $$
|
||||
declare
|
||||
lowerTs timestamptz;
|
||||
@@ -222,6 +193,9 @@ create trigger migtest_e_history2_history_upd
|
||||
before update or delete on migtest_e_history2
|
||||
for each row execute procedure migtest_e_history2_history_version();
|
||||
|
||||
|
||||
create table migtest_e_history3_history(like migtest_e_history3);
|
||||
create view migtest_e_history3_with_history as select * from migtest_e_history3 union all select * from migtest_e_history3_history;
|
||||
create or replace function migtest_e_history3_history_version() returns trigger as $$
|
||||
declare
|
||||
lowerTs timestamptz;
|
||||
@@ -244,6 +218,9 @@ create trigger migtest_e_history3_history_upd
|
||||
before update or delete on migtest_e_history3
|
||||
for each row execute procedure migtest_e_history3_history_version();
|
||||
|
||||
|
||||
create table migtest_e_history4_history(like migtest_e_history4);
|
||||
create view migtest_e_history4_with_history as select * from migtest_e_history4 union all select * from migtest_e_history4_history;
|
||||
create or replace function migtest_e_history4_history_version() returns trigger as $$
|
||||
declare
|
||||
lowerTs timestamptz;
|
||||
@@ -266,6 +243,9 @@ create trigger migtest_e_history4_history_upd
|
||||
before update or delete on migtest_e_history4
|
||||
for each row execute procedure migtest_e_history4_history_version();
|
||||
|
||||
|
||||
create table migtest_e_history5_history(like migtest_e_history5);
|
||||
create view migtest_e_history5_with_history as select * from migtest_e_history5 union all select * from migtest_e_history5_history;
|
||||
create or replace function migtest_e_history5_history_version() returns trigger as $$
|
||||
declare
|
||||
lowerTs timestamptz;
|
||||
@@ -288,6 +268,9 @@ create trigger migtest_e_history5_history_upd
|
||||
before update or delete on migtest_e_history5
|
||||
for each row execute procedure migtest_e_history5_history_version();
|
||||
|
||||
|
||||
create table migtest_e_history6_history(like migtest_e_history6);
|
||||
create view migtest_e_history6_with_history as select * from migtest_e_history6 union all select * from migtest_e_history6_history;
|
||||
create or replace function migtest_e_history6_history_version() returns trigger as $$
|
||||
declare
|
||||
lowerTs timestamptz;
|
||||
@@ -310,3 +293,19 @@ create trigger migtest_e_history6_history_upd
|
||||
before update or delete on migtest_e_history6
|
||||
for each row execute procedure migtest_e_history6_history_version();
|
||||
|
||||
|
||||
-- foreign keys and indices
|
||||
create index ix_migtest_fk_cascade_one_id on migtest_fk_cascade (one_id);
|
||||
alter table migtest_fk_cascade add constraint fk_migtest_fk_cascade_one_id foreign key (one_id) references migtest_fk_cascade_one (id) on delete cascade on update restrict;
|
||||
|
||||
create index ix_migtest_fk_set_null_one_id on migtest_fk_set_null (one_id);
|
||||
alter table migtest_fk_set_null add constraint fk_migtest_fk_set_null_one_id foreign key (one_id) references migtest_fk_one (id) on delete set null on update restrict;
|
||||
|
||||
create index ix_migtest_e_basic_eref_id on migtest_e_basic (eref_id);
|
||||
alter table migtest_e_basic add constraint fk_migtest_e_basic_eref_id foreign key (eref_id) references migtest_e_ref (id) on delete restrict on update restrict;
|
||||
|
||||
create index if not exists ix_migtest_e_basic_indextest1 on migtest_e_basic (indextest1);
|
||||
create index if not exists ix_migtest_e_basic_indextest5 on migtest_e_basic (indextest5);
|
||||
create index idxd_migtest_0 on migtest_oto_child using hash (upper(name)) where upper(name) = 'JIM';
|
||||
create index concurrently if not exists ix_migtest_oto_child_lowername_id on migtest_oto_child (lower(name),id);
|
||||
create index if not exists ix_migtest_oto_child_lowername on migtest_oto_child (lower(name));
|
||||
|
||||
@@ -12,10 +12,6 @@ drop index if exists ix_migtest_e_basic_indextest5;
|
||||
drop index if exists idxd_migtest_0;
|
||||
drop index concurrently if exists ix_migtest_oto_child_lowername_id;
|
||||
drop index if exists ix_migtest_oto_child_lowername;
|
||||
drop view if exists migtest_e_history2_with_history;
|
||||
drop view if exists migtest_e_history3_with_history;
|
||||
drop view if exists migtest_e_history4_with_history;
|
||||
drop view if exists migtest_e_history5_with_history;
|
||||
-- apply changes
|
||||
create table migtest_e_user (
|
||||
id serial not null,
|
||||
@@ -50,6 +46,22 @@ alter table migtest_e_history alter column test_string TYPE bigint USING (test_s
|
||||
|
||||
-- NOTE: table has @History - special migration may be necessary
|
||||
update migtest_e_history2 set test_string = 'unknown' where test_string is null;
|
||||
drop trigger if exists migtest_e_history2_history_upd on migtest_e_history2 cascade;
|
||||
drop function if exists migtest_e_history2_history_version();
|
||||
|
||||
drop view migtest_e_history2_with_history;
|
||||
drop trigger if exists migtest_e_history3_history_upd on migtest_e_history3 cascade;
|
||||
drop function if exists migtest_e_history3_history_version();
|
||||
|
||||
drop view migtest_e_history3_with_history;
|
||||
drop trigger if exists migtest_e_history4_history_upd on migtest_e_history4 cascade;
|
||||
drop function if exists migtest_e_history4_history_version();
|
||||
|
||||
drop view migtest_e_history4_with_history;
|
||||
drop trigger if exists migtest_e_history5_history_upd on migtest_e_history5 cascade;
|
||||
drop function if exists migtest_e_history5_history_version();
|
||||
|
||||
drop view migtest_e_history5_with_history;
|
||||
|
||||
-- NOTE: table has @History - special migration may be necessary
|
||||
update migtest_e_history6 set test_number1 = 42 where test_number1 is null;
|
||||
@@ -100,9 +112,123 @@ alter table migtest_e_basic add constraint uq_migtest_e_basic_indextest4 unique
|
||||
alter table migtest_e_basic add constraint uq_migtest_e_basic_indextest5 unique (indextest5);
|
||||
create table migtest_e_history_history(like migtest_e_history);
|
||||
create view migtest_e_history_with_history as select * from migtest_e_history union all select * from migtest_e_history_history;
|
||||
create or replace function migtest_e_history_history_version() returns trigger as $$
|
||||
declare
|
||||
lowerTs timestamptz;
|
||||
upperTs timestamptz;
|
||||
begin
|
||||
lowerTs = lower(OLD.sys_period);
|
||||
upperTs = greatest(lowerTs + '1 microsecond',current_timestamp);
|
||||
if (TG_OP = 'UPDATE') then
|
||||
insert into migtest_e_history_history (sys_period,id, test_string) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_string);
|
||||
NEW.sys_period = tstzrange(upperTs,null);
|
||||
return new;
|
||||
elsif (TG_OP = 'DELETE') then
|
||||
insert into migtest_e_history_history (sys_period,id, test_string) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_string);
|
||||
return old;
|
||||
end if;
|
||||
end;
|
||||
$$ LANGUAGE plpgsql;
|
||||
|
||||
create trigger migtest_e_history_history_upd
|
||||
before update or delete on migtest_e_history
|
||||
for each row execute procedure migtest_e_history_history_version();
|
||||
|
||||
|
||||
comment on column migtest_e_history.test_string is 'Column altered to long now';
|
||||
comment on table migtest_e_history is 'We have history now';
|
||||
create view migtest_e_history2_with_history as select * from migtest_e_history2 union all select * from migtest_e_history2_history;
|
||||
create or replace function migtest_e_history2_history_version() returns trigger as $$
|
||||
declare
|
||||
lowerTs timestamptz;
|
||||
upperTs timestamptz;
|
||||
begin
|
||||
lowerTs = lower(OLD.sys_period);
|
||||
upperTs = greatest(lowerTs + '1 microsecond',current_timestamp);
|
||||
if (TG_OP = 'UPDATE') then
|
||||
insert into migtest_e_history2_history (sys_period,id, test_string, test_string3, new_column, obsolete_string1, obsolete_string2) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_string, OLD.test_string3, OLD.new_column, OLD.obsolete_string1, OLD.obsolete_string2);
|
||||
NEW.sys_period = tstzrange(upperTs,null);
|
||||
return new;
|
||||
elsif (TG_OP = 'DELETE') then
|
||||
insert into migtest_e_history2_history (sys_period,id, test_string, test_string3, new_column, obsolete_string1, obsolete_string2) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_string, OLD.test_string3, OLD.new_column, OLD.obsolete_string1, OLD.obsolete_string2);
|
||||
return old;
|
||||
end if;
|
||||
end;
|
||||
$$ LANGUAGE plpgsql;
|
||||
|
||||
create trigger migtest_e_history2_history_upd
|
||||
before update or delete on migtest_e_history2
|
||||
for each row execute procedure migtest_e_history2_history_version();
|
||||
|
||||
create view migtest_e_history3_with_history as select * from migtest_e_history3 union all select * from migtest_e_history3_history;
|
||||
create or replace function migtest_e_history3_history_version() returns trigger as $$
|
||||
declare
|
||||
lowerTs timestamptz;
|
||||
upperTs timestamptz;
|
||||
begin
|
||||
lowerTs = lower(OLD.sys_period);
|
||||
upperTs = greatest(lowerTs + '1 microsecond',current_timestamp);
|
||||
if (TG_OP = 'UPDATE') then
|
||||
insert into migtest_e_history3_history (sys_period,id) values (tstzrange(lowerTs,upperTs), OLD.id);
|
||||
NEW.sys_period = tstzrange(upperTs,null);
|
||||
return new;
|
||||
elsif (TG_OP = 'DELETE') then
|
||||
insert into migtest_e_history3_history (sys_period,id) values (tstzrange(lowerTs,upperTs), OLD.id);
|
||||
return old;
|
||||
end if;
|
||||
end;
|
||||
$$ LANGUAGE plpgsql;
|
||||
|
||||
create trigger migtest_e_history3_history_upd
|
||||
before update or delete on migtest_e_history3
|
||||
for each row execute procedure migtest_e_history3_history_version();
|
||||
|
||||
create view migtest_e_history4_with_history as select * from migtest_e_history4 union all select * from migtest_e_history4_history;
|
||||
create or replace function migtest_e_history4_history_version() returns trigger as $$
|
||||
declare
|
||||
lowerTs timestamptz;
|
||||
upperTs timestamptz;
|
||||
begin
|
||||
lowerTs = lower(OLD.sys_period);
|
||||
upperTs = greatest(lowerTs + '1 microsecond',current_timestamp);
|
||||
if (TG_OP = 'UPDATE') then
|
||||
insert into migtest_e_history4_history (sys_period,id, test_number) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_number);
|
||||
NEW.sys_period = tstzrange(upperTs,null);
|
||||
return new;
|
||||
elsif (TG_OP = 'DELETE') then
|
||||
insert into migtest_e_history4_history (sys_period,id, test_number) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_number);
|
||||
return old;
|
||||
end if;
|
||||
end;
|
||||
$$ LANGUAGE plpgsql;
|
||||
|
||||
create trigger migtest_e_history4_history_upd
|
||||
before update or delete on migtest_e_history4
|
||||
for each row execute procedure migtest_e_history4_history_version();
|
||||
|
||||
create view migtest_e_history5_with_history as select * from migtest_e_history5 union all select * from migtest_e_history5_history;
|
||||
create or replace function migtest_e_history5_history_version() returns trigger as $$
|
||||
declare
|
||||
lowerTs timestamptz;
|
||||
upperTs timestamptz;
|
||||
begin
|
||||
lowerTs = lower(OLD.sys_period);
|
||||
upperTs = greatest(lowerTs + '1 microsecond',current_timestamp);
|
||||
if (TG_OP = 'UPDATE') then
|
||||
insert into migtest_e_history5_history (sys_period,id, test_number, test_boolean) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_number, OLD.test_boolean);
|
||||
NEW.sys_period = tstzrange(upperTs,null);
|
||||
return new;
|
||||
elsif (TG_OP = 'DELETE') then
|
||||
insert into migtest_e_history5_history (sys_period,id, test_number, test_boolean) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_number, OLD.test_boolean);
|
||||
return old;
|
||||
end if;
|
||||
end;
|
||||
$$ LANGUAGE plpgsql;
|
||||
|
||||
create trigger migtest_e_history5_history_upd
|
||||
before update or delete on migtest_e_history5
|
||||
for each row execute procedure migtest_e_history5_history_version();
|
||||
|
||||
-- foreign keys and indices
|
||||
create index ix_migtest_mtm_c_migtest_mtm_m_migtest_mtm_c on migtest_mtm_c_migtest_mtm_m (migtest_mtm_c_id);
|
||||
alter table migtest_mtm_c_migtest_mtm_m add constraint fk_migtest_mtm_c_migtest_mtm_m_migtest_mtm_c foreign key (migtest_mtm_c_id) references migtest_mtm_c (id) on delete restrict on update restrict;
|
||||
@@ -133,111 +259,3 @@ alter table migtest_oto_child add constraint fk_migtest_oto_child_master_id fore
|
||||
create index if not exists ix_migtest_e_basic_indextest3 on migtest_e_basic (indextest3);
|
||||
create index if not exists ix_migtest_e_basic_indextest6 on migtest_e_basic (indextest6);
|
||||
create index if not exists ix_migtest_oto_child_name on migtest_oto_child (name);
|
||||
-- apply history view
|
||||
create view migtest_e_history2_with_history as select * from migtest_e_history2 union all select * from migtest_e_history2_history;
|
||||
|
||||
create view migtest_e_history3_with_history as select * from migtest_e_history3 union all select * from migtest_e_history3_history;
|
||||
|
||||
create view migtest_e_history4_with_history as select * from migtest_e_history4 union all select * from migtest_e_history4_history;
|
||||
|
||||
create view migtest_e_history5_with_history as select * from migtest_e_history5 union all select * from migtest_e_history5_history;
|
||||
|
||||
-- apply history trigger
|
||||
create or replace function migtest_e_history_history_version() returns trigger as $$
|
||||
declare
|
||||
lowerTs timestamptz;
|
||||
upperTs timestamptz;
|
||||
begin
|
||||
lowerTs = lower(OLD.sys_period);
|
||||
upperTs = greatest(lowerTs + '1 microsecond',current_timestamp);
|
||||
if (TG_OP = 'UPDATE') then
|
||||
insert into migtest_e_history_history (sys_period,id, test_string) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_string);
|
||||
NEW.sys_period = tstzrange(upperTs,null);
|
||||
return new;
|
||||
elsif (TG_OP = 'DELETE') then
|
||||
insert into migtest_e_history_history (sys_period,id, test_string) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_string);
|
||||
return old;
|
||||
end if;
|
||||
end;
|
||||
$$ LANGUAGE plpgsql;
|
||||
|
||||
create trigger migtest_e_history_history_upd
|
||||
before update or delete on migtest_e_history
|
||||
for each row execute procedure migtest_e_history_history_version();
|
||||
|
||||
-- changes: [add test_string2, add test_string3, add new_column]
|
||||
create or replace function migtest_e_history2_history_version() returns trigger as $$
|
||||
declare
|
||||
lowerTs timestamptz;
|
||||
upperTs timestamptz;
|
||||
begin
|
||||
lowerTs = lower(OLD.sys_period);
|
||||
upperTs = greatest(lowerTs + '1 microsecond',current_timestamp);
|
||||
if (TG_OP = 'UPDATE') then
|
||||
insert into migtest_e_history2_history (sys_period,id, test_string, test_string3, new_column, obsolete_string1, obsolete_string2) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_string, OLD.test_string3, OLD.new_column, OLD.obsolete_string1, OLD.obsolete_string2);
|
||||
NEW.sys_period = tstzrange(upperTs,null);
|
||||
return new;
|
||||
elsif (TG_OP = 'DELETE') then
|
||||
insert into migtest_e_history2_history (sys_period,id, test_string, test_string3, new_column, obsolete_string1, obsolete_string2) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_string, OLD.test_string3, OLD.new_column, OLD.obsolete_string1, OLD.obsolete_string2);
|
||||
return old;
|
||||
end if;
|
||||
end;
|
||||
$$ LANGUAGE plpgsql;
|
||||
|
||||
-- changes: [exclude test_string]
|
||||
create or replace function migtest_e_history3_history_version() returns trigger as $$
|
||||
declare
|
||||
lowerTs timestamptz;
|
||||
upperTs timestamptz;
|
||||
begin
|
||||
lowerTs = lower(OLD.sys_period);
|
||||
upperTs = greatest(lowerTs + '1 microsecond',current_timestamp);
|
||||
if (TG_OP = 'UPDATE') then
|
||||
insert into migtest_e_history3_history (sys_period,id) values (tstzrange(lowerTs,upperTs), OLD.id);
|
||||
NEW.sys_period = tstzrange(upperTs,null);
|
||||
return new;
|
||||
elsif (TG_OP = 'DELETE') then
|
||||
insert into migtest_e_history3_history (sys_period,id) values (tstzrange(lowerTs,upperTs), OLD.id);
|
||||
return old;
|
||||
end if;
|
||||
end;
|
||||
$$ LANGUAGE plpgsql;
|
||||
|
||||
-- changes: [alter test_number]
|
||||
create or replace function migtest_e_history4_history_version() returns trigger as $$
|
||||
declare
|
||||
lowerTs timestamptz;
|
||||
upperTs timestamptz;
|
||||
begin
|
||||
lowerTs = lower(OLD.sys_period);
|
||||
upperTs = greatest(lowerTs + '1 microsecond',current_timestamp);
|
||||
if (TG_OP = 'UPDATE') then
|
||||
insert into migtest_e_history4_history (sys_period,id, test_number) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_number);
|
||||
NEW.sys_period = tstzrange(upperTs,null);
|
||||
return new;
|
||||
elsif (TG_OP = 'DELETE') then
|
||||
insert into migtest_e_history4_history (sys_period,id, test_number) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_number);
|
||||
return old;
|
||||
end if;
|
||||
end;
|
||||
$$ LANGUAGE plpgsql;
|
||||
|
||||
-- changes: [add test_boolean]
|
||||
create or replace function migtest_e_history5_history_version() returns trigger as $$
|
||||
declare
|
||||
lowerTs timestamptz;
|
||||
upperTs timestamptz;
|
||||
begin
|
||||
lowerTs = lower(OLD.sys_period);
|
||||
upperTs = greatest(lowerTs + '1 microsecond',current_timestamp);
|
||||
if (TG_OP = 'UPDATE') then
|
||||
insert into migtest_e_history5_history (sys_period,id, test_number, test_boolean) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_number, OLD.test_boolean);
|
||||
NEW.sys_period = tstzrange(upperTs,null);
|
||||
return new;
|
||||
elsif (TG_OP = 'DELETE') then
|
||||
insert into migtest_e_history5_history (sys_period,id, test_number, test_boolean) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_number, OLD.test_boolean);
|
||||
return old;
|
||||
end if;
|
||||
end;
|
||||
$$ LANGUAGE plpgsql;
|
||||
|
||||
|
||||
+11
-8
@@ -1,6 +1,9 @@
|
||||
-- Migrationscripts for ebean unittest
|
||||
-- drop dependencies
|
||||
drop view if exists migtest_e_history2_with_history;
|
||||
-- apply changes
|
||||
drop trigger if exists migtest_e_history2_history_upd on migtest_e_history2 cascade;
|
||||
drop function if exists migtest_e_history2_history_version();
|
||||
|
||||
drop view migtest_e_history2_with_history;
|
||||
-- apply alter tables
|
||||
alter table migtest_e_basic drop column description_file;
|
||||
alter table migtest_e_basic drop column old_boolean;
|
||||
@@ -11,13 +14,7 @@ alter table migtest_e_history2 drop column obsolete_string2;
|
||||
alter table migtest_e_history2_history drop column obsolete_string1;
|
||||
alter table migtest_e_history2_history drop column obsolete_string2;
|
||||
-- apply post alter
|
||||
drop table if exists migtest_e_ref cascade;
|
||||
drop sequence if exists migtest_e_ref_seq;
|
||||
-- apply history view
|
||||
create view migtest_e_history2_with_history as select * from migtest_e_history2 union all select * from migtest_e_history2_history;
|
||||
|
||||
-- apply history trigger
|
||||
-- changes: [drop obsolete_string1, drop obsolete_string2]
|
||||
create or replace function migtest_e_history2_history_version() returns trigger as $$
|
||||
declare
|
||||
lowerTs timestamptz;
|
||||
@@ -36,3 +33,9 @@ begin
|
||||
end;
|
||||
$$ LANGUAGE plpgsql;
|
||||
|
||||
create trigger migtest_e_history2_history_upd
|
||||
before update or delete on migtest_e_history2
|
||||
for each row execute procedure migtest_e_history2_history_version();
|
||||
|
||||
drop table if exists migtest_e_ref cascade;
|
||||
drop sequence if exists migtest_e_ref_seq;
|
||||
|
||||
@@ -16,9 +16,6 @@ alter table migtest_e_basic drop constraint uq_migtest_e_basic_indextest5;
|
||||
alter table migtest_e_enum drop constraint if exists ck_migtest_e_enum_test_status;
|
||||
drop index if exists ix_migtest_e_basic_indextest3;
|
||||
drop index if exists ix_migtest_e_basic_indextest6;
|
||||
drop view if exists migtest_e_history2_with_history;
|
||||
drop view if exists migtest_e_history3_with_history;
|
||||
drop view if exists migtest_e_history4_with_history;
|
||||
-- apply changes
|
||||
create table migtest_e_ref (
|
||||
id serial not null,
|
||||
@@ -31,6 +28,18 @@ create table migtest_e_ref (
|
||||
update migtest_e_basic set status2 = 'N' where status2 is null;
|
||||
|
||||
update migtest_e_basic set user_id = 23 where user_id is null;
|
||||
drop trigger if exists migtest_e_history2_history_upd on migtest_e_history2 cascade;
|
||||
drop function if exists migtest_e_history2_history_version();
|
||||
|
||||
drop view migtest_e_history2_with_history;
|
||||
drop trigger if exists migtest_e_history3_history_upd on migtest_e_history3 cascade;
|
||||
drop function if exists migtest_e_history3_history_version();
|
||||
|
||||
drop view migtest_e_history3_with_history;
|
||||
drop trigger if exists migtest_e_history4_history_upd on migtest_e_history4 cascade;
|
||||
drop function if exists migtest_e_history4_history_version();
|
||||
|
||||
drop view migtest_e_history4_with_history;
|
||||
|
||||
-- NOTE: table has @History - special migration may be necessary
|
||||
update migtest_e_history6 set test_number2 = 7 where test_number2 is null;
|
||||
@@ -66,26 +75,7 @@ alter table migtest_e_basic add constraint uq_migtest_e_basic_indextest6 unique
|
||||
alter table migtest_e_enum add constraint ck_migtest_e_enum_test_status check ( test_status in ('N','A','I'));
|
||||
comment on column migtest_e_history.test_string is '';
|
||||
comment on table migtest_e_history is '';
|
||||
-- foreign keys and indices
|
||||
alter table migtest_fk_cascade add constraint fk_migtest_fk_cascade_one_id foreign key (one_id) references migtest_fk_cascade_one (id) on delete cascade on update restrict;
|
||||
alter table migtest_fk_set_null add constraint fk_migtest_fk_set_null_one_id foreign key (one_id) references migtest_fk_one (id) on delete set null on update restrict;
|
||||
create index ix_migtest_e_basic_eref_id on migtest_e_basic (eref_id);
|
||||
alter table migtest_e_basic add constraint fk_migtest_e_basic_eref_id foreign key (eref_id) references migtest_e_ref (id) on delete restrict on update restrict;
|
||||
|
||||
create index if not exists ix_migtest_e_basic_indextest1 on migtest_e_basic (indextest1);
|
||||
create index if not exists ix_migtest_e_basic_indextest5 on migtest_e_basic (indextest5);
|
||||
create index if not exists ix_m12_otoc71 on migtest_oto_child (name);
|
||||
create unique index if not exists uq_m12_otoc71 on migtest_oto_child (lower(name));
|
||||
create unique index if not exists ix_migtest_oto_master_lowername on migtest_oto_master (lower(name));
|
||||
-- apply history view
|
||||
create view migtest_e_history2_with_history as select * from migtest_e_history2 union all select * from migtest_e_history2_history;
|
||||
|
||||
create view migtest_e_history3_with_history as select * from migtest_e_history3 union all select * from migtest_e_history3_history;
|
||||
|
||||
create view migtest_e_history4_with_history as select * from migtest_e_history4 union all select * from migtest_e_history4_history;
|
||||
|
||||
-- apply history trigger
|
||||
-- changes: [add obsolete_string1, add obsolete_string2]
|
||||
create or replace function migtest_e_history2_history_version() returns trigger as $$
|
||||
declare
|
||||
lowerTs timestamptz;
|
||||
@@ -104,7 +94,11 @@ begin
|
||||
end;
|
||||
$$ LANGUAGE plpgsql;
|
||||
|
||||
-- changes: [include test_string]
|
||||
create trigger migtest_e_history2_history_upd
|
||||
before update or delete on migtest_e_history2
|
||||
for each row execute procedure migtest_e_history2_history_version();
|
||||
|
||||
create view migtest_e_history3_with_history as select * from migtest_e_history3 union all select * from migtest_e_history3_history;
|
||||
create or replace function migtest_e_history3_history_version() returns trigger as $$
|
||||
declare
|
||||
lowerTs timestamptz;
|
||||
@@ -123,7 +117,11 @@ begin
|
||||
end;
|
||||
$$ LANGUAGE plpgsql;
|
||||
|
||||
-- changes: [alter test_number]
|
||||
create trigger migtest_e_history3_history_upd
|
||||
before update or delete on migtest_e_history3
|
||||
for each row execute procedure migtest_e_history3_history_version();
|
||||
|
||||
create view migtest_e_history4_with_history as select * from migtest_e_history4 union all select * from migtest_e_history4_history;
|
||||
create or replace function migtest_e_history4_history_version() returns trigger as $$
|
||||
declare
|
||||
lowerTs timestamptz;
|
||||
@@ -142,3 +140,18 @@ begin
|
||||
end;
|
||||
$$ LANGUAGE plpgsql;
|
||||
|
||||
create trigger migtest_e_history4_history_upd
|
||||
before update or delete on migtest_e_history4
|
||||
for each row execute procedure migtest_e_history4_history_version();
|
||||
|
||||
-- foreign keys and indices
|
||||
alter table migtest_fk_cascade add constraint fk_migtest_fk_cascade_one_id foreign key (one_id) references migtest_fk_cascade_one (id) on delete cascade on update restrict;
|
||||
alter table migtest_fk_set_null add constraint fk_migtest_fk_set_null_one_id foreign key (one_id) references migtest_fk_one (id) on delete set null on update restrict;
|
||||
create index ix_migtest_e_basic_eref_id on migtest_e_basic (eref_id);
|
||||
alter table migtest_e_basic add constraint fk_migtest_e_basic_eref_id foreign key (eref_id) references migtest_e_ref (id) on delete restrict on update restrict;
|
||||
|
||||
create index if not exists ix_migtest_e_basic_indextest1 on migtest_e_basic (indextest1);
|
||||
create index if not exists ix_migtest_e_basic_indextest5 on migtest_e_basic (indextest5);
|
||||
create index if not exists ix_m12_otoc71 on migtest_oto_child (name);
|
||||
create unique index if not exists uq_m12_otoc71 on migtest_oto_child (lower(name));
|
||||
create unique index if not exists ix_migtest_oto_master_lowername on migtest_oto_master (lower(name));
|
||||
|
||||
+23
-14
@@ -6,8 +6,15 @@ drop function if exists migtest_e_history_history_version();
|
||||
drop view migtest_e_history_with_history;
|
||||
drop table migtest_e_history_history;
|
||||
|
||||
drop view if exists migtest_e_history2_with_history;
|
||||
drop view if exists migtest_e_history5_with_history;
|
||||
-- apply changes
|
||||
drop trigger if exists migtest_e_history2_history_upd on migtest_e_history2 cascade;
|
||||
drop function if exists migtest_e_history2_history_version();
|
||||
|
||||
drop view migtest_e_history2_with_history;
|
||||
drop trigger if exists migtest_e_history5_history_upd on migtest_e_history5 cascade;
|
||||
drop function if exists migtest_e_history5_history_version();
|
||||
|
||||
drop view migtest_e_history5_with_history;
|
||||
-- apply alter tables
|
||||
alter table migtest_ckey_detail drop column one_key;
|
||||
alter table migtest_ckey_detail drop column two_key;
|
||||
@@ -29,18 +36,7 @@ alter table migtest_e_history5_history drop column test_boolean;
|
||||
alter table migtest_e_softdelete drop column deleted;
|
||||
alter table migtest_oto_child drop column master_id;
|
||||
-- apply post alter
|
||||
drop table if exists migtest_e_user cascade;
|
||||
drop sequence if exists migtest_e_user_seq;
|
||||
drop table if exists migtest_mtm_c_migtest_mtm_m cascade;
|
||||
drop table if exists migtest_mtm_m_migtest_mtm_c cascade;
|
||||
drop table if exists migtest_mtm_m_phone_numbers cascade;
|
||||
-- apply history view
|
||||
create view migtest_e_history2_with_history as select * from migtest_e_history2 union all select * from migtest_e_history2_history;
|
||||
|
||||
create view migtest_e_history5_with_history as select * from migtest_e_history5 union all select * from migtest_e_history5_history;
|
||||
|
||||
-- apply history trigger
|
||||
-- changes: [drop test_string2, drop test_string3, drop new_column]
|
||||
create or replace function migtest_e_history2_history_version() returns trigger as $$
|
||||
declare
|
||||
lowerTs timestamptz;
|
||||
@@ -59,7 +55,11 @@ begin
|
||||
end;
|
||||
$$ LANGUAGE plpgsql;
|
||||
|
||||
-- changes: [drop test_boolean]
|
||||
create trigger migtest_e_history2_history_upd
|
||||
before update or delete on migtest_e_history2
|
||||
for each row execute procedure migtest_e_history2_history_version();
|
||||
|
||||
create view migtest_e_history5_with_history as select * from migtest_e_history5 union all select * from migtest_e_history5_history;
|
||||
create or replace function migtest_e_history5_history_version() returns trigger as $$
|
||||
declare
|
||||
lowerTs timestamptz;
|
||||
@@ -78,3 +78,12 @@ begin
|
||||
end;
|
||||
$$ LANGUAGE plpgsql;
|
||||
|
||||
create trigger migtest_e_history5_history_upd
|
||||
before update or delete on migtest_e_history5
|
||||
for each row execute procedure migtest_e_history5_history_version();
|
||||
|
||||
drop table if exists migtest_e_user cascade;
|
||||
drop sequence if exists migtest_e_user_seq;
|
||||
drop table if exists migtest_mtm_c_migtest_mtm_m cascade;
|
||||
drop table if exists migtest_mtm_m_migtest_mtm_c cascade;
|
||||
drop table if exists migtest_mtm_m_phone_numbers cascade;
|
||||
|
||||
+5
-5
@@ -1,8 +1,8 @@
|
||||
1333804171, 1.0__initial.sql
|
||||
-1691146639, 1.1.sql
|
||||
1770819182, 1.2__dropsFor_1.1.sql
|
||||
1654255380, 1.3.sql
|
||||
739723472, 1.4__dropsFor_1.3.sql
|
||||
-1050466540, 1.0__initial.sql
|
||||
-480020430, 1.1.sql
|
||||
-1098989118, 1.2__dropsFor_1.1.sql
|
||||
-762160636, 1.3.sql
|
||||
1729345905, 1.4__dropsFor_1.3.sql
|
||||
783227075, R__multi_comments.sql
|
||||
561281075, R__order_views.sql
|
||||
283077354, R__pg_indexes.sql
|
||||
|
||||
@@ -177,49 +177,6 @@ create table migtest_e_history2_history(
|
||||
sys_period tstzrange
|
||||
);
|
||||
create view migtest_e_history2_with_history as select * from migtest_e_history2 union all select * from migtest_e_history2_history;
|
||||
|
||||
create table migtest_e_history3_history(
|
||||
id integer,
|
||||
test_string varchar(255),
|
||||
sys_period tstzrange
|
||||
);
|
||||
create view migtest_e_history3_with_history as select * from migtest_e_history3 union all select * from migtest_e_history3_history;
|
||||
|
||||
create table migtest_e_history4_history(
|
||||
id integer,
|
||||
test_number integer,
|
||||
sys_period tstzrange
|
||||
);
|
||||
create view migtest_e_history4_with_history as select * from migtest_e_history4 union all select * from migtest_e_history4_history;
|
||||
|
||||
create table migtest_e_history5_history(
|
||||
id integer,
|
||||
test_number integer,
|
||||
sys_period tstzrange
|
||||
);
|
||||
create view migtest_e_history5_with_history as select * from migtest_e_history5 union all select * from migtest_e_history5_history;
|
||||
|
||||
create table migtest_e_history6_history(
|
||||
id integer,
|
||||
test_number1 integer,
|
||||
test_number2 integer,
|
||||
sys_period tstzrange
|
||||
);
|
||||
create view migtest_e_history6_with_history as select * from migtest_e_history6 union all select * from migtest_e_history6_history;
|
||||
|
||||
-- foreign keys and indices
|
||||
create index ix_migtest_fk_cascade_one_id on migtest_fk_cascade (one_id);
|
||||
alter table migtest_fk_cascade add constraint fk_migtest_fk_cascade_one_id foreign key (one_id) references migtest_fk_cascade_one (id) on delete cascade on update restrict;
|
||||
|
||||
create index ix_migtest_fk_set_null_one_id on migtest_fk_set_null (one_id);
|
||||
alter table migtest_fk_set_null add constraint fk_migtest_fk_set_null_one_id foreign key (one_id) references migtest_fk_one (id) on delete set null on update restrict;
|
||||
|
||||
create index ix_migtest_e_basic_eref_id on migtest_e_basic (eref_id);
|
||||
alter table migtest_e_basic add constraint fk_migtest_e_basic_eref_id foreign key (eref_id) references migtest_e_ref (id) on delete restrict on update restrict;
|
||||
|
||||
create index if not exists ix_migtest_e_basic_indextest1 on migtest_e_basic (indextest1);
|
||||
create index if not exists ix_migtest_e_basic_indextest5 on migtest_e_basic (indextest5);
|
||||
-- apply history trigger
|
||||
create or replace function migtest_e_history2_history_version() returns trigger as $$
|
||||
declare
|
||||
lowerTs timestamptz;
|
||||
@@ -242,6 +199,13 @@ create trigger migtest_e_history2_history_upd
|
||||
before update or delete on migtest_e_history2
|
||||
for each row execute procedure migtest_e_history2_history_version();
|
||||
|
||||
|
||||
create table migtest_e_history3_history(
|
||||
id integer,
|
||||
test_string varchar(255),
|
||||
sys_period tstzrange
|
||||
);
|
||||
create view migtest_e_history3_with_history as select * from migtest_e_history3 union all select * from migtest_e_history3_history;
|
||||
create or replace function migtest_e_history3_history_version() returns trigger as $$
|
||||
declare
|
||||
lowerTs timestamptz;
|
||||
@@ -264,6 +228,13 @@ create trigger migtest_e_history3_history_upd
|
||||
before update or delete on migtest_e_history3
|
||||
for each row execute procedure migtest_e_history3_history_version();
|
||||
|
||||
|
||||
create table migtest_e_history4_history(
|
||||
id integer,
|
||||
test_number integer,
|
||||
sys_period tstzrange
|
||||
);
|
||||
create view migtest_e_history4_with_history as select * from migtest_e_history4 union all select * from migtest_e_history4_history;
|
||||
create or replace function migtest_e_history4_history_version() returns trigger as $$
|
||||
declare
|
||||
lowerTs timestamptz;
|
||||
@@ -286,6 +257,13 @@ create trigger migtest_e_history4_history_upd
|
||||
before update or delete on migtest_e_history4
|
||||
for each row execute procedure migtest_e_history4_history_version();
|
||||
|
||||
|
||||
create table migtest_e_history5_history(
|
||||
id integer,
|
||||
test_number integer,
|
||||
sys_period tstzrange
|
||||
);
|
||||
create view migtest_e_history5_with_history as select * from migtest_e_history5 union all select * from migtest_e_history5_history;
|
||||
create or replace function migtest_e_history5_history_version() returns trigger as $$
|
||||
declare
|
||||
lowerTs timestamptz;
|
||||
@@ -308,6 +286,14 @@ create trigger migtest_e_history5_history_upd
|
||||
before update or delete on migtest_e_history5
|
||||
for each row execute procedure migtest_e_history5_history_version();
|
||||
|
||||
|
||||
create table migtest_e_history6_history(
|
||||
id integer,
|
||||
test_number1 integer,
|
||||
test_number2 integer,
|
||||
sys_period tstzrange
|
||||
);
|
||||
create view migtest_e_history6_with_history as select * from migtest_e_history6 union all select * from migtest_e_history6_history;
|
||||
create or replace function migtest_e_history6_history_version() returns trigger as $$
|
||||
declare
|
||||
lowerTs timestamptz;
|
||||
@@ -330,3 +316,16 @@ create trigger migtest_e_history6_history_upd
|
||||
before update or delete on migtest_e_history6
|
||||
for each row execute procedure migtest_e_history6_history_version();
|
||||
|
||||
|
||||
-- foreign keys and indices
|
||||
create index ix_migtest_fk_cascade_one_id on migtest_fk_cascade (one_id);
|
||||
alter table migtest_fk_cascade add constraint fk_migtest_fk_cascade_one_id foreign key (one_id) references migtest_fk_cascade_one (id) on delete cascade on update restrict;
|
||||
|
||||
create index ix_migtest_fk_set_null_one_id on migtest_fk_set_null (one_id);
|
||||
alter table migtest_fk_set_null add constraint fk_migtest_fk_set_null_one_id foreign key (one_id) references migtest_fk_one (id) on delete set null on update restrict;
|
||||
|
||||
create index ix_migtest_e_basic_eref_id on migtest_e_basic (eref_id);
|
||||
alter table migtest_e_basic add constraint fk_migtest_e_basic_eref_id foreign key (eref_id) references migtest_e_ref (id) on delete restrict on update restrict;
|
||||
|
||||
create index if not exists ix_migtest_e_basic_indextest1 on migtest_e_basic (indextest1);
|
||||
create index if not exists ix_migtest_e_basic_indextest5 on migtest_e_basic (indextest5);
|
||||
|
||||
@@ -9,10 +9,6 @@ alter table migtest_e_basic drop constraint uq_migtest_e_basic_indextest6;
|
||||
alter table migtest_e_enum drop constraint if exists ck_migtest_e_enum_test_status;
|
||||
drop index if exists ix_migtest_e_basic_indextest1;
|
||||
drop index if exists ix_migtest_e_basic_indextest5;
|
||||
drop view if exists migtest_e_history2_with_history;
|
||||
drop view if exists migtest_e_history3_with_history;
|
||||
drop view if exists migtest_e_history4_with_history;
|
||||
drop view if exists migtest_e_history5_with_history;
|
||||
-- apply changes
|
||||
create table migtest_e_user (
|
||||
id integer generated by default as identity not null,
|
||||
@@ -45,6 +41,22 @@ insert into migtest_e_user (id) select distinct user_id from migtest_e_basic;
|
||||
|
||||
-- NOTE: table has @History - special migration may be necessary
|
||||
update migtest_e_history2 set test_string = 'unknown' where test_string is null;
|
||||
drop trigger if exists migtest_e_history2_history_upd on migtest_e_history2 cascade;
|
||||
drop function if exists migtest_e_history2_history_version();
|
||||
|
||||
drop view migtest_e_history2_with_history;
|
||||
drop trigger if exists migtest_e_history3_history_upd on migtest_e_history3 cascade;
|
||||
drop function if exists migtest_e_history3_history_version();
|
||||
|
||||
drop view migtest_e_history3_with_history;
|
||||
drop trigger if exists migtest_e_history4_history_upd on migtest_e_history4 cascade;
|
||||
drop function if exists migtest_e_history4_history_version();
|
||||
|
||||
drop view migtest_e_history4_with_history;
|
||||
drop trigger if exists migtest_e_history5_history_upd on migtest_e_history5 cascade;
|
||||
drop function if exists migtest_e_history5_history_version();
|
||||
|
||||
drop view migtest_e_history5_with_history;
|
||||
|
||||
-- NOTE: table has @History - special migration may be necessary
|
||||
update migtest_e_history6 set test_number1 = 42 where test_number1 is null;
|
||||
@@ -99,9 +111,123 @@ create table migtest_e_history_history(
|
||||
sys_period tstzrange
|
||||
);
|
||||
create view migtest_e_history_with_history as select * from migtest_e_history union all select * from migtest_e_history_history;
|
||||
create or replace function migtest_e_history_history_version() returns trigger as $$
|
||||
declare
|
||||
lowerTs timestamptz;
|
||||
upperTs timestamptz;
|
||||
begin
|
||||
lowerTs = lower(OLD.sys_period);
|
||||
upperTs = greatest(lowerTs + '1 microsecond',current_timestamp);
|
||||
if (TG_OP = 'UPDATE') then
|
||||
insert into migtest_e_history_history (sys_period,id, test_string) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_string);
|
||||
NEW.sys_period = tstzrange(upperTs,null);
|
||||
return new;
|
||||
elsif (TG_OP = 'DELETE') then
|
||||
insert into migtest_e_history_history (sys_period,id, test_string) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_string);
|
||||
return old;
|
||||
end if;
|
||||
end;
|
||||
$$ LANGUAGE plpgsql;
|
||||
|
||||
create trigger migtest_e_history_history_upd
|
||||
before update or delete on migtest_e_history
|
||||
for each row execute procedure migtest_e_history_history_version();
|
||||
|
||||
|
||||
comment on column migtest_e_history.test_string is 'Column altered to long now';
|
||||
comment on table migtest_e_history is 'We have history now';
|
||||
create view migtest_e_history2_with_history as select * from migtest_e_history2 union all select * from migtest_e_history2_history;
|
||||
create or replace function migtest_e_history2_history_version() returns trigger as $$
|
||||
declare
|
||||
lowerTs timestamptz;
|
||||
upperTs timestamptz;
|
||||
begin
|
||||
lowerTs = lower(OLD.sys_period);
|
||||
upperTs = greatest(lowerTs + '1 microsecond',current_timestamp);
|
||||
if (TG_OP = 'UPDATE') then
|
||||
insert into migtest_e_history2_history (sys_period,id, test_string, test_string3, new_column, obsolete_string1, obsolete_string2) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_string, OLD.test_string3, OLD.new_column, OLD.obsolete_string1, OLD.obsolete_string2);
|
||||
NEW.sys_period = tstzrange(upperTs,null);
|
||||
return new;
|
||||
elsif (TG_OP = 'DELETE') then
|
||||
insert into migtest_e_history2_history (sys_period,id, test_string, test_string3, new_column, obsolete_string1, obsolete_string2) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_string, OLD.test_string3, OLD.new_column, OLD.obsolete_string1, OLD.obsolete_string2);
|
||||
return old;
|
||||
end if;
|
||||
end;
|
||||
$$ LANGUAGE plpgsql;
|
||||
|
||||
create trigger migtest_e_history2_history_upd
|
||||
before update or delete on migtest_e_history2
|
||||
for each row execute procedure migtest_e_history2_history_version();
|
||||
|
||||
create view migtest_e_history3_with_history as select * from migtest_e_history3 union all select * from migtest_e_history3_history;
|
||||
create or replace function migtest_e_history3_history_version() returns trigger as $$
|
||||
declare
|
||||
lowerTs timestamptz;
|
||||
upperTs timestamptz;
|
||||
begin
|
||||
lowerTs = lower(OLD.sys_period);
|
||||
upperTs = greatest(lowerTs + '1 microsecond',current_timestamp);
|
||||
if (TG_OP = 'UPDATE') then
|
||||
insert into migtest_e_history3_history (sys_period,id) values (tstzrange(lowerTs,upperTs), OLD.id);
|
||||
NEW.sys_period = tstzrange(upperTs,null);
|
||||
return new;
|
||||
elsif (TG_OP = 'DELETE') then
|
||||
insert into migtest_e_history3_history (sys_period,id) values (tstzrange(lowerTs,upperTs), OLD.id);
|
||||
return old;
|
||||
end if;
|
||||
end;
|
||||
$$ LANGUAGE plpgsql;
|
||||
|
||||
create trigger migtest_e_history3_history_upd
|
||||
before update or delete on migtest_e_history3
|
||||
for each row execute procedure migtest_e_history3_history_version();
|
||||
|
||||
create view migtest_e_history4_with_history as select * from migtest_e_history4 union all select * from migtest_e_history4_history;
|
||||
create or replace function migtest_e_history4_history_version() returns trigger as $$
|
||||
declare
|
||||
lowerTs timestamptz;
|
||||
upperTs timestamptz;
|
||||
begin
|
||||
lowerTs = lower(OLD.sys_period);
|
||||
upperTs = greatest(lowerTs + '1 microsecond',current_timestamp);
|
||||
if (TG_OP = 'UPDATE') then
|
||||
insert into migtest_e_history4_history (sys_period,id, test_number) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_number);
|
||||
NEW.sys_period = tstzrange(upperTs,null);
|
||||
return new;
|
||||
elsif (TG_OP = 'DELETE') then
|
||||
insert into migtest_e_history4_history (sys_period,id, test_number) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_number);
|
||||
return old;
|
||||
end if;
|
||||
end;
|
||||
$$ LANGUAGE plpgsql;
|
||||
|
||||
create trigger migtest_e_history4_history_upd
|
||||
before update or delete on migtest_e_history4
|
||||
for each row execute procedure migtest_e_history4_history_version();
|
||||
|
||||
create view migtest_e_history5_with_history as select * from migtest_e_history5 union all select * from migtest_e_history5_history;
|
||||
create or replace function migtest_e_history5_history_version() returns trigger as $$
|
||||
declare
|
||||
lowerTs timestamptz;
|
||||
upperTs timestamptz;
|
||||
begin
|
||||
lowerTs = lower(OLD.sys_period);
|
||||
upperTs = greatest(lowerTs + '1 microsecond',current_timestamp);
|
||||
if (TG_OP = 'UPDATE') then
|
||||
insert into migtest_e_history5_history (sys_period,id, test_number, test_boolean) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_number, OLD.test_boolean);
|
||||
NEW.sys_period = tstzrange(upperTs,null);
|
||||
return new;
|
||||
elsif (TG_OP = 'DELETE') then
|
||||
insert into migtest_e_history5_history (sys_period,id, test_number, test_boolean) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_number, OLD.test_boolean);
|
||||
return old;
|
||||
end if;
|
||||
end;
|
||||
$$ LANGUAGE plpgsql;
|
||||
|
||||
create trigger migtest_e_history5_history_upd
|
||||
before update or delete on migtest_e_history5
|
||||
for each row execute procedure migtest_e_history5_history_version();
|
||||
|
||||
-- foreign keys and indices
|
||||
create index ix_migtest_mtm_c_migtest_mtm_m_migtest_mtm_c on migtest_mtm_c_migtest_mtm_m (migtest_mtm_c_id);
|
||||
alter table migtest_mtm_c_migtest_mtm_m add constraint fk_migtest_mtm_c_migtest_mtm_m_migtest_mtm_c foreign key (migtest_mtm_c_id) references migtest_mtm_c (id) on delete restrict on update restrict;
|
||||
@@ -131,111 +257,3 @@ alter table migtest_oto_child add constraint fk_migtest_oto_child_master_id fore
|
||||
|
||||
create index if not exists ix_migtest_e_basic_indextest3 on migtest_e_basic (indextest3);
|
||||
create index if not exists ix_migtest_e_basic_indextest6 on migtest_e_basic (indextest6);
|
||||
-- apply history view
|
||||
create view migtest_e_history2_with_history as select * from migtest_e_history2 union all select * from migtest_e_history2_history;
|
||||
|
||||
create view migtest_e_history3_with_history as select * from migtest_e_history3 union all select * from migtest_e_history3_history;
|
||||
|
||||
create view migtest_e_history4_with_history as select * from migtest_e_history4 union all select * from migtest_e_history4_history;
|
||||
|
||||
create view migtest_e_history5_with_history as select * from migtest_e_history5 union all select * from migtest_e_history5_history;
|
||||
|
||||
-- apply history trigger
|
||||
create or replace function migtest_e_history_history_version() returns trigger as $$
|
||||
declare
|
||||
lowerTs timestamptz;
|
||||
upperTs timestamptz;
|
||||
begin
|
||||
lowerTs = lower(OLD.sys_period);
|
||||
upperTs = greatest(lowerTs + '1 microsecond',current_timestamp);
|
||||
if (TG_OP = 'UPDATE') then
|
||||
insert into migtest_e_history_history (sys_period,id, test_string) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_string);
|
||||
NEW.sys_period = tstzrange(upperTs,null);
|
||||
return new;
|
||||
elsif (TG_OP = 'DELETE') then
|
||||
insert into migtest_e_history_history (sys_period,id, test_string) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_string);
|
||||
return old;
|
||||
end if;
|
||||
end;
|
||||
$$ LANGUAGE plpgsql;
|
||||
|
||||
create trigger migtest_e_history_history_upd
|
||||
before update or delete on migtest_e_history
|
||||
for each row execute procedure migtest_e_history_history_version();
|
||||
|
||||
-- changes: [add test_string2, add test_string3, add new_column]
|
||||
create or replace function migtest_e_history2_history_version() returns trigger as $$
|
||||
declare
|
||||
lowerTs timestamptz;
|
||||
upperTs timestamptz;
|
||||
begin
|
||||
lowerTs = lower(OLD.sys_period);
|
||||
upperTs = greatest(lowerTs + '1 microsecond',current_timestamp);
|
||||
if (TG_OP = 'UPDATE') then
|
||||
insert into migtest_e_history2_history (sys_period,id, test_string, test_string3, new_column, obsolete_string1, obsolete_string2) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_string, OLD.test_string3, OLD.new_column, OLD.obsolete_string1, OLD.obsolete_string2);
|
||||
NEW.sys_period = tstzrange(upperTs,null);
|
||||
return new;
|
||||
elsif (TG_OP = 'DELETE') then
|
||||
insert into migtest_e_history2_history (sys_period,id, test_string, test_string3, new_column, obsolete_string1, obsolete_string2) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_string, OLD.test_string3, OLD.new_column, OLD.obsolete_string1, OLD.obsolete_string2);
|
||||
return old;
|
||||
end if;
|
||||
end;
|
||||
$$ LANGUAGE plpgsql;
|
||||
|
||||
-- changes: [exclude test_string]
|
||||
create or replace function migtest_e_history3_history_version() returns trigger as $$
|
||||
declare
|
||||
lowerTs timestamptz;
|
||||
upperTs timestamptz;
|
||||
begin
|
||||
lowerTs = lower(OLD.sys_period);
|
||||
upperTs = greatest(lowerTs + '1 microsecond',current_timestamp);
|
||||
if (TG_OP = 'UPDATE') then
|
||||
insert into migtest_e_history3_history (sys_period,id) values (tstzrange(lowerTs,upperTs), OLD.id);
|
||||
NEW.sys_period = tstzrange(upperTs,null);
|
||||
return new;
|
||||
elsif (TG_OP = 'DELETE') then
|
||||
insert into migtest_e_history3_history (sys_period,id) values (tstzrange(lowerTs,upperTs), OLD.id);
|
||||
return old;
|
||||
end if;
|
||||
end;
|
||||
$$ LANGUAGE plpgsql;
|
||||
|
||||
-- changes: [alter test_number]
|
||||
create or replace function migtest_e_history4_history_version() returns trigger as $$
|
||||
declare
|
||||
lowerTs timestamptz;
|
||||
upperTs timestamptz;
|
||||
begin
|
||||
lowerTs = lower(OLD.sys_period);
|
||||
upperTs = greatest(lowerTs + '1 microsecond',current_timestamp);
|
||||
if (TG_OP = 'UPDATE') then
|
||||
insert into migtest_e_history4_history (sys_period,id, test_number) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_number);
|
||||
NEW.sys_period = tstzrange(upperTs,null);
|
||||
return new;
|
||||
elsif (TG_OP = 'DELETE') then
|
||||
insert into migtest_e_history4_history (sys_period,id, test_number) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_number);
|
||||
return old;
|
||||
end if;
|
||||
end;
|
||||
$$ LANGUAGE plpgsql;
|
||||
|
||||
-- changes: [add test_boolean]
|
||||
create or replace function migtest_e_history5_history_version() returns trigger as $$
|
||||
declare
|
||||
lowerTs timestamptz;
|
||||
upperTs timestamptz;
|
||||
begin
|
||||
lowerTs = lower(OLD.sys_period);
|
||||
upperTs = greatest(lowerTs + '1 microsecond',current_timestamp);
|
||||
if (TG_OP = 'UPDATE') then
|
||||
insert into migtest_e_history5_history (sys_period,id, test_number, test_boolean) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_number, OLD.test_boolean);
|
||||
NEW.sys_period = tstzrange(upperTs,null);
|
||||
return new;
|
||||
elsif (TG_OP = 'DELETE') then
|
||||
insert into migtest_e_history5_history (sys_period,id, test_number, test_boolean) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_number, OLD.test_boolean);
|
||||
return old;
|
||||
end if;
|
||||
end;
|
||||
$$ LANGUAGE plpgsql;
|
||||
|
||||
|
||||
+11
-8
@@ -1,6 +1,9 @@
|
||||
-- Migrationscripts for ebean unittest
|
||||
-- drop dependencies
|
||||
drop view if exists migtest_e_history2_with_history;
|
||||
-- apply changes
|
||||
drop trigger if exists migtest_e_history2_history_upd on migtest_e_history2 cascade;
|
||||
drop function if exists migtest_e_history2_history_version();
|
||||
|
||||
drop view migtest_e_history2_with_history;
|
||||
-- apply alter tables
|
||||
alter table migtest_e_basic drop column description_file;
|
||||
alter table migtest_e_basic drop column old_boolean;
|
||||
@@ -11,13 +14,7 @@ alter table migtest_e_history2 drop column obsolete_string2;
|
||||
alter table migtest_e_history2_history drop column obsolete_string1;
|
||||
alter table migtest_e_history2_history drop column obsolete_string2;
|
||||
-- apply post alter
|
||||
drop table if exists migtest_e_ref cascade;
|
||||
drop sequence if exists migtest_e_ref_seq;
|
||||
-- apply history view
|
||||
create view migtest_e_history2_with_history as select * from migtest_e_history2 union all select * from migtest_e_history2_history;
|
||||
|
||||
-- apply history trigger
|
||||
-- changes: [drop obsolete_string1, drop obsolete_string2]
|
||||
create or replace function migtest_e_history2_history_version() returns trigger as $$
|
||||
declare
|
||||
lowerTs timestamptz;
|
||||
@@ -36,3 +33,9 @@ begin
|
||||
end;
|
||||
$$ LANGUAGE plpgsql;
|
||||
|
||||
create trigger migtest_e_history2_history_upd
|
||||
before update or delete on migtest_e_history2
|
||||
for each row execute procedure migtest_e_history2_history_version();
|
||||
|
||||
drop table if exists migtest_e_ref cascade;
|
||||
drop sequence if exists migtest_e_ref_seq;
|
||||
|
||||
@@ -16,9 +16,6 @@ alter table migtest_e_basic drop constraint uq_migtest_e_basic_indextest5;
|
||||
alter table migtest_e_enum drop constraint if exists ck_migtest_e_enum_test_status;
|
||||
drop index if exists ix_migtest_e_basic_indextest3;
|
||||
drop index if exists ix_migtest_e_basic_indextest6;
|
||||
drop view if exists migtest_e_history2_with_history;
|
||||
drop view if exists migtest_e_history3_with_history;
|
||||
drop view if exists migtest_e_history4_with_history;
|
||||
-- apply changes
|
||||
create table migtest_e_ref (
|
||||
id integer generated by default as identity not null,
|
||||
@@ -31,6 +28,18 @@ create table migtest_e_ref (
|
||||
update migtest_e_basic set status2 = 'N' where status2 is null;
|
||||
|
||||
update migtest_e_basic set user_id = 23 where user_id is null;
|
||||
drop trigger if exists migtest_e_history2_history_upd on migtest_e_history2 cascade;
|
||||
drop function if exists migtest_e_history2_history_version();
|
||||
|
||||
drop view migtest_e_history2_with_history;
|
||||
drop trigger if exists migtest_e_history3_history_upd on migtest_e_history3 cascade;
|
||||
drop function if exists migtest_e_history3_history_version();
|
||||
|
||||
drop view migtest_e_history3_with_history;
|
||||
drop trigger if exists migtest_e_history4_history_upd on migtest_e_history4 cascade;
|
||||
drop function if exists migtest_e_history4_history_version();
|
||||
|
||||
drop view migtest_e_history4_with_history;
|
||||
|
||||
-- NOTE: table has @History - special migration may be necessary
|
||||
update migtest_e_history6 set test_number2 = 7 where test_number2 is null;
|
||||
@@ -66,23 +75,7 @@ alter table migtest_e_basic add constraint uq_migtest_e_basic_indextest6 unique
|
||||
alter table migtest_e_enum add constraint ck_migtest_e_enum_test_status check ( test_status in ('N','A','I'));
|
||||
comment on column migtest_e_history.test_string is '';
|
||||
comment on table migtest_e_history is '';
|
||||
-- foreign keys and indices
|
||||
alter table migtest_fk_cascade add constraint fk_migtest_fk_cascade_one_id foreign key (one_id) references migtest_fk_cascade_one (id) on delete cascade on update restrict;
|
||||
alter table migtest_fk_set_null add constraint fk_migtest_fk_set_null_one_id foreign key (one_id) references migtest_fk_one (id) on delete set null on update restrict;
|
||||
create index ix_migtest_e_basic_eref_id on migtest_e_basic (eref_id);
|
||||
alter table migtest_e_basic add constraint fk_migtest_e_basic_eref_id foreign key (eref_id) references migtest_e_ref (id) on delete restrict on update restrict;
|
||||
|
||||
create index if not exists ix_migtest_e_basic_indextest1 on migtest_e_basic (indextest1);
|
||||
create index if not exists ix_migtest_e_basic_indextest5 on migtest_e_basic (indextest5);
|
||||
-- apply history view
|
||||
create view migtest_e_history2_with_history as select * from migtest_e_history2 union all select * from migtest_e_history2_history;
|
||||
|
||||
create view migtest_e_history3_with_history as select * from migtest_e_history3 union all select * from migtest_e_history3_history;
|
||||
|
||||
create view migtest_e_history4_with_history as select * from migtest_e_history4 union all select * from migtest_e_history4_history;
|
||||
|
||||
-- apply history trigger
|
||||
-- changes: [add obsolete_string1, add obsolete_string2]
|
||||
create or replace function migtest_e_history2_history_version() returns trigger as $$
|
||||
declare
|
||||
lowerTs timestamptz;
|
||||
@@ -101,7 +94,11 @@ begin
|
||||
end;
|
||||
$$ LANGUAGE plpgsql;
|
||||
|
||||
-- changes: [include test_string]
|
||||
create trigger migtest_e_history2_history_upd
|
||||
before update or delete on migtest_e_history2
|
||||
for each row execute procedure migtest_e_history2_history_version();
|
||||
|
||||
create view migtest_e_history3_with_history as select * from migtest_e_history3 union all select * from migtest_e_history3_history;
|
||||
create or replace function migtest_e_history3_history_version() returns trigger as $$
|
||||
declare
|
||||
lowerTs timestamptz;
|
||||
@@ -120,7 +117,11 @@ begin
|
||||
end;
|
||||
$$ LANGUAGE plpgsql;
|
||||
|
||||
-- changes: [alter test_number]
|
||||
create trigger migtest_e_history3_history_upd
|
||||
before update or delete on migtest_e_history3
|
||||
for each row execute procedure migtest_e_history3_history_version();
|
||||
|
||||
create view migtest_e_history4_with_history as select * from migtest_e_history4 union all select * from migtest_e_history4_history;
|
||||
create or replace function migtest_e_history4_history_version() returns trigger as $$
|
||||
declare
|
||||
lowerTs timestamptz;
|
||||
@@ -139,3 +140,15 @@ begin
|
||||
end;
|
||||
$$ LANGUAGE plpgsql;
|
||||
|
||||
create trigger migtest_e_history4_history_upd
|
||||
before update or delete on migtest_e_history4
|
||||
for each row execute procedure migtest_e_history4_history_version();
|
||||
|
||||
-- foreign keys and indices
|
||||
alter table migtest_fk_cascade add constraint fk_migtest_fk_cascade_one_id foreign key (one_id) references migtest_fk_cascade_one (id) on delete cascade on update restrict;
|
||||
alter table migtest_fk_set_null add constraint fk_migtest_fk_set_null_one_id foreign key (one_id) references migtest_fk_one (id) on delete set null on update restrict;
|
||||
create index ix_migtest_e_basic_eref_id on migtest_e_basic (eref_id);
|
||||
alter table migtest_e_basic add constraint fk_migtest_e_basic_eref_id foreign key (eref_id) references migtest_e_ref (id) on delete restrict on update restrict;
|
||||
|
||||
create index if not exists ix_migtest_e_basic_indextest1 on migtest_e_basic (indextest1);
|
||||
create index if not exists ix_migtest_e_basic_indextest5 on migtest_e_basic (indextest5);
|
||||
|
||||
+23
-14
@@ -6,8 +6,15 @@ drop function if exists migtest_e_history_history_version();
|
||||
drop view migtest_e_history_with_history;
|
||||
drop table migtest_e_history_history;
|
||||
|
||||
drop view if exists migtest_e_history2_with_history;
|
||||
drop view if exists migtest_e_history5_with_history;
|
||||
-- apply changes
|
||||
drop trigger if exists migtest_e_history2_history_upd on migtest_e_history2 cascade;
|
||||
drop function if exists migtest_e_history2_history_version();
|
||||
|
||||
drop view migtest_e_history2_with_history;
|
||||
drop trigger if exists migtest_e_history5_history_upd on migtest_e_history5 cascade;
|
||||
drop function if exists migtest_e_history5_history_version();
|
||||
|
||||
drop view migtest_e_history5_with_history;
|
||||
-- apply alter tables
|
||||
alter table migtest_ckey_detail drop column one_key;
|
||||
alter table migtest_ckey_detail drop column two_key;
|
||||
@@ -29,18 +36,7 @@ alter table migtest_e_history5_history drop column test_boolean;
|
||||
alter table migtest_e_softdelete drop column deleted;
|
||||
alter table migtest_oto_child drop column master_id;
|
||||
-- apply post alter
|
||||
drop table if exists migtest_e_user cascade;
|
||||
drop sequence if exists migtest_e_user_seq;
|
||||
drop table if exists migtest_mtm_c_migtest_mtm_m cascade;
|
||||
drop table if exists migtest_mtm_m_migtest_mtm_c cascade;
|
||||
drop table if exists migtest_mtm_m_phone_numbers cascade;
|
||||
-- apply history view
|
||||
create view migtest_e_history2_with_history as select * from migtest_e_history2 union all select * from migtest_e_history2_history;
|
||||
|
||||
create view migtest_e_history5_with_history as select * from migtest_e_history5 union all select * from migtest_e_history5_history;
|
||||
|
||||
-- apply history trigger
|
||||
-- changes: [drop test_string2, drop test_string3, drop new_column]
|
||||
create or replace function migtest_e_history2_history_version() returns trigger as $$
|
||||
declare
|
||||
lowerTs timestamptz;
|
||||
@@ -59,7 +55,11 @@ begin
|
||||
end;
|
||||
$$ LANGUAGE plpgsql;
|
||||
|
||||
-- changes: [drop test_boolean]
|
||||
create trigger migtest_e_history2_history_upd
|
||||
before update or delete on migtest_e_history2
|
||||
for each row execute procedure migtest_e_history2_history_version();
|
||||
|
||||
create view migtest_e_history5_with_history as select * from migtest_e_history5 union all select * from migtest_e_history5_history;
|
||||
create or replace function migtest_e_history5_history_version() returns trigger as $$
|
||||
declare
|
||||
lowerTs timestamptz;
|
||||
@@ -78,3 +78,12 @@ begin
|
||||
end;
|
||||
$$ LANGUAGE plpgsql;
|
||||
|
||||
create trigger migtest_e_history5_history_upd
|
||||
before update or delete on migtest_e_history5
|
||||
for each row execute procedure migtest_e_history5_history_version();
|
||||
|
||||
drop table if exists migtest_e_user cascade;
|
||||
drop sequence if exists migtest_e_user_seq;
|
||||
drop table if exists migtest_mtm_c_migtest_mtm_m cascade;
|
||||
drop table if exists migtest_mtm_m_migtest_mtm_c cascade;
|
||||
drop table if exists migtest_mtm_m_phone_numbers cascade;
|
||||
|
||||
+5
-5
@@ -1,7 +1,7 @@
|
||||
1260183516, 1.0__initial.sql
|
||||
1193452475, 1.1.sql
|
||||
1770819182, 1.2__dropsFor_1.1.sql
|
||||
456034327, 1.3.sql
|
||||
739723472, 1.4__dropsFor_1.3.sql
|
||||
-1111753161, 1.0__initial.sql
|
||||
-794033493, 1.1.sql
|
||||
-1098989118, 1.2__dropsFor_1.1.sql
|
||||
1468123571, 1.3.sql
|
||||
1729345905, 1.4__dropsFor_1.3.sql
|
||||
561281075, R__order_views.sql
|
||||
|
||||
|
||||
Reference in New Issue
Block a user