View Revisions: Issue #6995

Summary 0006995: Detect changes in startup parameters affecting database objects
Revision 2025-07-14 19:37 by pbelov
Description Currently the AbstractSymmetricEngine.setupDatabase method is unaware of recent changes to the startup parameters.
Whenever a startup parameter affecting database objects is changed it is important to re-evaluate database objects and them setup accordingly.

Example parameters:
postgres.trigger.capture.truncate.event
trigger.capture.ddl.changes
Revision 2025-07-14 19:40 by pbelov
Description Currently the AbstractSymmetricEngine.setupDatabase method is unaware of recent changes to the startup parameters.
Whenever a startup parameter affecting database objects is changed it is important to re-evaluate database objects and them setup accordingly.
The system context service can help with this by storing values of startup parameters.
Revision 2025-07-14 19:37 by pbelov
Steps To Reproduce
Revision 2025-07-14 19:40 by pbelov
Steps To Reproduce Example of parameters affecting database setup:
postgres.trigger.capture.truncate.event
trigger.capture.ddl.changes
Revision 2025-07-14 20:04 by pbelov
Description Currently the AbstractSymmetricEngine.setupDatabase method is unaware of recent changes to the startup parameters.
Whenever a startup parameter affecting database objects is changed it is important to re-evaluate database objects and them setup accordingly.
The (system) context service can help with this by storing values of startup parameters.
ContextConstants.STARTUP_DB_SETUP_HASH
Revision 2025-07-14 19:37 by pbelov
Additional Information
Revision 2025-09-15 12:46 by pbelov
Additional Information If an older SymmetricDS instance is upgraded these parameters could still be in the database (and must be moved to the engine file manually!).
trigger.capture.ddl.changes=value?as?needed
postgres.trigger.capture.truncate.event=value?as?needed

This statement will clear this situation up:
DELETE FROM sym_parameter WHERE param_key IN ('trigger.capture.ddl.changes','postgres.trigger.capture.truncate.event');