Revision 46768
Added by Claudio Atzori about 7 years ago
modules/cnr-enabling-database-service/trunk/src/main/java/eu/dnetlib/enabling/database/utils/DatabaseUtils.java | ||
---|---|---|
520 | 520 |
jdbcTemplate.update(getSQLFromTemplate("manageTable", database, table, null)); |
521 | 521 |
log.info("Added management of table " + table); |
522 | 522 |
} |
523 |
|
|
524 |
addLogTable(database, table); |
|
525 | 523 |
} |
526 | 524 |
|
527 |
public void addLogTable(final String database, final String table) throws DatabaseException { |
|
528 |
verifyParameters(database, table); |
|
529 |
JdbcTemplate jdbcTemplate = jdbcTemplateFactory.createJdbcTemplate(database); |
|
530 |
|
|
531 |
if (!isLoggedTable(jdbcTemplate, table)) { |
|
532 |
jdbcTemplate.update(getSQLFromTemplate("removeLogTable", database, table, null)); |
|
533 |
jdbcTemplate.update(getSQLFromTemplate("addLogTable", database, table, null)); |
|
534 |
log.info("Added logs of table " + table); |
|
535 |
} |
|
536 |
} |
|
537 |
|
|
538 | 525 |
public void removeManagementOfTable(final String database, final String table) throws DatabaseException { |
539 | 526 |
verifyParameters(database, table); |
540 | 527 |
JdbcTemplate jdbcTemplate = jdbcTemplateFactory.createJdbcTemplate(database); |
... | ... | |
543 | 530 |
jdbcTemplate.update(getSQLFromTemplate("unmanageTable", database, table, null)); |
544 | 531 |
log.info("Removed management of table " + table); |
545 | 532 |
} |
546 |
removeLogTable(database, table); |
|
547 | 533 |
} |
548 | 534 |
|
549 |
public void removeLogTable(final String database, final String table) throws DatabaseException { |
|
550 |
verifyParameters(database, table); |
|
551 |
JdbcTemplate jdbcTemplate = jdbcTemplateFactory.createJdbcTemplate(database); |
|
552 |
|
|
553 |
if (isLoggedTable(jdbcTemplate, table)) { |
|
554 |
jdbcTemplate.update(getSQLFromTemplate("removeLogTable", database, table, null)); |
|
555 |
log.info("Removed logs of table " + table); |
|
556 |
} |
|
557 |
} |
|
558 |
|
|
559 | 535 |
public boolean isManagedTable(final String database, final String table) throws DatabaseException { |
560 | 536 |
verifyParameters(database, table); |
561 | 537 |
JdbcTemplate jdbcTemplate = jdbcTemplateFactory.createJdbcTemplate(database); |
modules/cnr-enabling-database-service/trunk/src/main/resources/eu/dnetlib/enabling/database/velocity/addLogTable.sql.vm | ||
---|---|---|
1 |
CREATE TABLE ${table}_log ( |
|
2 |
${idField} VARCHAR(2048), |
|
3 |
operation VARCHAR(10), |
|
4 |
date TIMESTAMP DEFAULT current_timestamp, |
|
5 |
id SERIAL, |
|
6 |
status VARCHAR(10) DEFAULT '' |
|
7 |
); |
|
8 |
INSERT INTO ${table}_log SELECT ${idField}, 'insert', current_timestamp from ${table}; |
|
9 |
|
|
10 |
create or replace function notify_insert_${table}() returns trigger as $$ |
|
11 |
begin |
|
12 |
insert into ${table}_log values (NEW.${idField}, 'insert'); |
|
13 |
return NEW; |
|
14 |
end; |
|
15 |
$$ |
|
16 |
language plpgsql volatile; |
|
17 |
|
|
18 |
create or replace function notify_update_${table}() returns trigger as $$ |
|
19 |
begin |
|
20 |
insert into ${table}_log values (NEW.${idField}, 'update'); |
|
21 |
return NEW; |
|
22 |
end; |
|
23 |
$$ |
|
24 |
language plpgsql volatile; |
|
25 |
|
|
26 |
create or replace function notify_delete_${table}() returns trigger as $$ |
|
27 |
begin |
|
28 |
insert into ${table}_log values (OLD.${idField}, 'delete'); |
|
29 |
return NEW; |
|
30 |
end; |
|
31 |
$$ |
|
32 |
language plpgsql volatile; |
|
33 |
|
|
34 |
|
|
35 |
create trigger notify_insert_${table} |
|
36 |
after insert on ${table} |
|
37 |
for each row execute procedure notify_insert_${table}(); |
|
38 |
|
|
39 |
create trigger notify_update_${table} |
|
40 |
after update on ${table} |
|
41 |
for each row execute procedure notify_update_${table}(); |
|
42 |
|
|
43 |
create trigger notify_delete_${table} |
|
44 |
after delete on ${table} |
|
45 |
for each row execute procedure notify_delete_${table}(); |
modules/cnr-enabling-database-service/trunk/src/main/resources/eu/dnetlib/enabling/database/velocity/removeLogTable.sql.vm | ||
---|---|---|
1 |
DROP TRIGGER IF EXISTS notify_insert_${table} ON ${table}; |
|
2 |
DROP TRIGGER IF EXISTS notify_update_${table} ON ${table}; |
|
3 |
DROP TRIGGER IF EXISTS notify_delete_${table} ON ${table}; |
|
4 |
|
|
5 |
DROP FUNCTION IF EXISTS notify_insert_${table}(); |
|
6 |
DROP FUNCTION IF EXISTS notify_update_${table}(); |
|
7 |
DROP FUNCTION IF EXISTS notify_delete_${table}(); |
|
8 |
|
|
9 |
DROP TABLE IF EXISTS ${table}_log; |
Also available in: Unified diff
removed table logging bloatware