View Issue Details

IDProjectCategoryView StatusLast Update
0006690SymmetricDSNew Featurepublic2025-01-14 16:00
Reporterpmarzullo Assigned Topmarzullo  
Prioritynormal 
Status assignedResolutionopen 
Product Version3.15.12 
Target Version3.15.13 
Summary0006690: Send Trigger DDL when sending table schema
DescriptionNew feature to send Trigger DDL from source platform to the same platform at the target when sending table schema.
This also sends functions that are needed for Postgres trigger implementations.
The triggers that are selected to send are triggers that are not SymmetricDS triggers.

This feature only sends trigger DDL from and to the same platform. For example, trigger DDL from a source platform of Oracle can send the trigger definitions to a target Oracle platform.

This takes the source trigger DDL from the source platform and sends the source trigger DDL to the target platform and executes that DDL on the target platform. If there is a syntax change between the two platforms, there will most likely be a syntax error executing the script at the target platform.

The platforms that this was tested with includes Oracle, SQL Server, MariaDB, MySQL, and Postgres.
Tagsddl/schema, trigger

Activities

There are no notes attached to this issue.

Related Changesets

SymmetricDS: 3.15 060a370e

2025-01-14 15:21:29

philipmarzullo64


Committer: GitHub Details Diff
6690: New branch feature/6690_send_trigger_ddl (0000218)

* 6690: New branch feature/6690_send_trigger_ddl

* 6690: Code formatting

* 6690: Code formatting

* 6690: Code formatting

* 6690: Code formatting

* 6690: Code formatting

* feature/6690_send_trigger_ddl: Remove commented out code

* feature/6690_send_trigger_ddl: remove commented code

* feature/6690_send_trigger_ddl: use databaseInfo.getCatalogSeparator()
and databaseInfo.getSchemaSeparator() instead of hard-coded ".".

* feature/6690_send_trigger_ddl: remove extra semicolons

* feature/6690_send_trigger_ddl: Assign database name to the database
model objects for use by ModelComparator when looking for platform
specific triggers and functions

* 6690_send_trigger_ddl: change symTablePrefix to triggerPrefix (to make
SymmetricDS agnostic) and fix bug (use triggerPrefix, not tablePrefix)

---------

Co-authored-by: Philip Marzullo <pmarzullo@jumpmind.com>
Affected Issues
0006690
mod - symmetric-core/src/main/java/org/jumpmind/symmetric/common/ParameterConstants.java Diff File
mod - symmetric-core/src/main/java/org/jumpmind/symmetric/extract/SelectFromSymDataSource.java Diff File
mod - symmetric-core/src/main/java/org/jumpmind/symmetric/load/AbstractDataLoaderFactory.java Diff File
mod - symmetric-core/src/main/java/org/jumpmind/symmetric/route/AuditTableDataRouter.java Diff File
mod - symmetric-core/src/main/resources/symmetric-default.properties Diff File
add - symmetric-db/src/main/java/org/jumpmind/db/alter/AddFunctionChange.java Diff File
add - symmetric-db/src/main/java/org/jumpmind/db/alter/AddTriggerChange.java Diff File
mod - symmetric-db/src/main/java/org/jumpmind/db/alter/ModelComparator.java Diff File
add - symmetric-db/src/main/java/org/jumpmind/db/alter/RemoveFunctionChange.java Diff File
add - symmetric-db/src/main/java/org/jumpmind/db/alter/RemoveTriggerChange.java Diff File
mod - symmetric-db/src/main/java/org/jumpmind/db/io/DatabaseXmlUtil.java Diff File
add - symmetric-db/src/main/java/org/jumpmind/db/model/Function.java Diff File
add - symmetric-db/src/main/java/org/jumpmind/db/model/PlatformFunction.java Diff File
add - symmetric-db/src/main/java/org/jumpmind/db/model/PlatformTrigger.java Diff File
mod - symmetric-db/src/main/java/org/jumpmind/db/model/Table.java Diff File
mod - symmetric-db/src/main/java/org/jumpmind/db/model/Trigger.java Diff File
mod - symmetric-db/src/main/java/org/jumpmind/db/platform/AbstractDatabasePlatform.java Diff File
mod - symmetric-db/src/main/java/org/jumpmind/db/platform/AbstractDdlBuilder.java Diff File
mod - symmetric-db/src/main/java/org/jumpmind/db/platform/DatabaseVersion.java Diff File
mod - symmetric-db/src/main/java/org/jumpmind/db/platform/IDatabasePlatform.java Diff File
mod - symmetric-db/src/main/java/org/jumpmind/db/platform/IDdlBuilder.java Diff File
mod - symmetric-db/src/main/java/org/jumpmind/db/platform/IDdlReader.java Diff File
mod - symmetric-db/src/main/java/org/jumpmind/db/platform/cassandra/CassandraDdlReader.java Diff File
mod - symmetric-db/src/main/java/org/jumpmind/db/platform/kafka/KafkaDdlReader.java Diff File
mod - symmetric-db/src/main/java/org/jumpmind/db/platform/postgresql/PostgreSqlDdlBuilder.java Diff File
mod - symmetric-db/src/main/java/org/jumpmind/db/platform/sqlite/SqliteDdlReader.java Diff File
mod - symmetric-io/src/main/java/org/jumpmind/symmetric/io/data/writer/DatabaseWriterSettings.java Diff File
mod - symmetric-io/src/main/java/org/jumpmind/symmetric/io/data/writer/DefaultDatabaseWriter.java Diff File
mod - symmetric-jdbc/src/main/java/org/jumpmind/db/platform/AbstractJdbcDdlReader.java Diff File
mod - symmetric-jdbc/src/main/java/org/jumpmind/db/platform/JdbcDatabasePlatformFactory.java Diff File
mod - symmetric-jdbc/src/main/java/org/jumpmind/db/platform/oracle/OracleDdlReader.java Diff File
mod - symmetric-jdbc/src/main/java/org/jumpmind/db/platform/postgresql/PostgreSqlDdlReader.java Diff File
mod - symmetric-jdbc/src/test/java/org/jumpmind/db/AbstractDdlTypesTest.java Diff File
mod - symmetric-jdbc/src/test/java/org/jumpmind/db/DatabasePlatformTest.java Diff File

Issue History

Date Modified Username Field Change
2025-01-06 19:46 pmarzullo New Issue
2025-01-06 19:46 pmarzullo Status new => assigned
2025-01-06 19:46 pmarzullo Assigned To => pmarzullo
2025-01-06 19:46 pmarzullo Tag Attached: ddl/schema
2025-01-06 19:46 pmarzullo Tag Attached: trigger
2025-01-07 13:20 pmarzullo Summary Send Trigger DDL => Send Trigger DDL when sending table schema
2025-01-07 13:20 pmarzullo Description Updated View Revisions
2025-01-14 16:00 Changeset attached => SymmetricDS 3.15 060a370e