# evidence 259 — messaging-flyway-migration-namespace # revision: a24ece9cf797f7ea647e33bf846b115208ed1ba5 # cwd: /shared/codebase/clean-architecture-backend-template/src/messaging # command: bash /tmp/flyway.sh # ---- raw output ---- ---- messaging migrations (git-tracked) ---- src/messaging/messaging-inbox-jdbc-postgresql/src/main/resources/db/migration/messaging/V2__messaging_inbox.sql src/messaging/messaging-outbox-jdbc-postgresql/src/main/resources/db/migration/messaging/V1__messaging_outbox.sql src/messaging/messaging-outbox-jdbc-postgresql/src/main/resources/db/migration/messaging/V2__messaging_outbox_lease_fencing.sql src/messaging/messaging-outbox-jdbc-postgresql/src/main/resources/db/migration/messaging/V3__messaging_admin_operation_journal.sql src/messaging/messaging-outbox-jdbc-postgresql/src/main/resources/db/migration/messaging/V4__messaging_outbox_canonical_metadata.sql ---- primary Flyway location set by the composition root ---- src/adapter/outbound/persistence-jpa/src/main/java/dev/caskeleton/adapter/outbound/persistence/experimental/schema/SchemaTenantMigrationOrchestrator.java:83: .locations(migrationLocation) src/adapter/outbound/persistence-jpa/src/main/java/dev/caskeleton/adapter/outbound/persistence/postgresql/PostgreSqlPersistenceConfig.java:94: *

This unconditionally called {@code locations(...)}, which replaces whatever Spring bound src/adapter/outbound/persistence-jpa/src/main/java/dev/caskeleton/adapter/outbound/persistence/postgresql/PostgreSqlPersistenceConfig.java:115: configuration.locations("classpath:db/migration/postgresql"); src/adapter/outbound/persistence-jpa/src/main/java/dev/caskeleton/adapter/outbound/persistence/notification/NotificationSchemaStream.java:60: .locations(LOCATION) ---- conditional schema streams (each with its own history table) ---- src/adapter/outbound/persistence-jpa/src/main/java/dev/caskeleton/adapter/outbound/persistence/notification/NotificationSchemaStream.java:25: public static final String LOCATION = "classpath:db/migration/jpa/notification-platform"; ---- does any main-code location name db/migration/messaging? ---- (no main-code hit above == the messaging migration stream is never applied) ---- the two V2 files sharing one resource directory ---- inbox leaf: V2__messaging_inbox.sql outbox leaf: V1__messaging_outbox.sql V2__messaging_outbox_lease_fencing.sql V3__messaging_admin_operation_journal.sql V4__messaging_outbox_canonical_metadata.sql V2__messaging_inbox.sql creates: 7:CREATE TABLE messaging_inbox V2__messaging_outbox_lease_fencing.sql changes: 15:ALTER TABLE messaging_outbox 22:ALTER TABLE messaging_outbox 28:ALTER TABLE messaging_outbox 31:ALTER TABLE messaging_outbox 37:CREATE INDEX ix_messaging_outbox_next_attempt ---- the implementation plan specified separate locations ---- 3010:- Create: `modules/messaging/messaging-outbox-jpa/src/main/resources/db/migration/messaging-outbox/V1__create_messaging_outbox.sql` 3011:- Create: `modules/messaging/messaging-inbox-jpa/src/main/resources/db/migration/messaging-inbox/V1__create_messaging_inbox.sql` 3032: migrate("classpath:db/migration/messaging-outbox"); 3055: migrate("classpath:db/migration/messaging-inbox");