diff --git a/.github/workflows/jersey-main.yml b/.github/workflows/jersey-main.yml index fc354511..29551da9 100644 --- a/.github/workflows/jersey-main.yml +++ b/.github/workflows/jersey-main.yml @@ -1,9 +1,9 @@ name: CI jersey-main on: push: - branches: [ main, dev ] + branches: [ master, dev ] pull_request: - branches: [ main, dev ] + branches: [ master, dev ] env: REGISTRY: ghcr.io diff --git a/.github/workflows/jersey-release.yml b/.github/workflows/jersey-release.yml index df85e026..962edf17 100644 --- a/.github/workflows/jersey-release.yml +++ b/.github/workflows/jersey-release.yml @@ -41,7 +41,7 @@ jobs: packages: write steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - name: Set up QEMU uses: docker/setup-qemu-action@v3 diff --git a/.github/workflows/microservices-main.yml b/.github/workflows/microservices-main.yml index c1e20159..329a5663 100644 --- a/.github/workflows/microservices-main.yml +++ b/.github/workflows/microservices-main.yml @@ -1,9 +1,9 @@ name: CI microservices-main on: push: - branches: [ main, dev ] + branches: [ master, dev ] pull_request: - branches: [ main, dev ] + branches: [ master, dev ] jobs: build: @@ -247,5 +247,5 @@ jobs: if: always() with: name: integration-test-logs - path: appserver-jersey/build/container-logs/ + path: microservices/integration-tests/build/container-logs/ retention-days: 7 diff --git a/.github/workflows/microservices-release.yml b/.github/workflows/microservices-release.yml index 7340b46e..9c5b40ac 100644 --- a/.github/workflows/microservices-release.yml +++ b/.github/workflows/microservices-release.yml @@ -1,4 +1,4 @@ -name: Appserver Jersey Release +name: Appserver Microservices Release on: release: @@ -7,7 +7,6 @@ on: env: REGISTRY: ghcr.io REPOSITORY: ${{ github.repository }} - IMAGE_NAME: radar-appserver jobs: upload: @@ -65,7 +64,7 @@ jobs: - cloud-messaging-service steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - uses: actions/setup-java@v5 with: @@ -89,8 +88,10 @@ jobs: password: ${{ secrets.GITHUB_TOKEN }} - name: Lowercase image name + env: + MODULE: ${{ matrix.service }} run: | - echo "DOCKER_IMAGE=${REGISTRY}/${REPOSITORY,,}/${IMAGE_NAME}" >>${GITHUB_ENV} + echo "DOCKER_IMAGE=${REGISTRY}/${REPOSITORY,,}/${MODULE}" >>${GITHUB_ENV} # Add Docker labels and tags - name: Docker meta diff --git a/appserver-jersey/src/main/kotlin/org/radarbase/appserver/jersey/config/LiquibaseConfig.kt b/appserver-jersey/src/main/kotlin/org/radarbase/appserver/jersey/config/LiquibaseConfig.kt index c6899926..a0d77fed 100644 --- a/appserver-jersey/src/main/kotlin/org/radarbase/appserver/jersey/config/LiquibaseConfig.kt +++ b/appserver-jersey/src/main/kotlin/org/radarbase/appserver/jersey/config/LiquibaseConfig.kt @@ -18,4 +18,5 @@ package org.radarbase.appserver.jersey.config data class LiquibaseConfig( val enabled: Boolean = false, + val changelogs: String = "db/changelog/db.changelog-master.yaml", ) diff --git a/appserver-jersey/src/main/kotlin/org/radarbase/appserver/jersey/enhancer/factory/AppserverResourceEnhancerFactory.kt b/appserver-jersey/src/main/kotlin/org/radarbase/appserver/jersey/enhancer/factory/AppserverResourceEnhancerFactory.kt index e93f756f..06affaec 100644 --- a/appserver-jersey/src/main/kotlin/org/radarbase/appserver/jersey/enhancer/factory/AppserverResourceEnhancerFactory.kt +++ b/appserver-jersey/src/main/kotlin/org/radarbase/appserver/jersey/enhancer/factory/AppserverResourceEnhancerFactory.kt @@ -51,6 +51,7 @@ class AppserverResourceEnhancerFactory(private val config: AppserverConfig) : En properties = config.db.additionalProperties, liquibase = org.radarbase.jersey.hibernate.config.LiquibaseConfig( enable = config.db.liquibase.enabled, + changelogs = config.db.liquibase.changelogs, ), ) diff --git a/appserver-jersey/src/main/resources/appserver.yml b/appserver-jersey/src/main/resources/appserver.yml index 097eea37..40262081 100644 --- a/appserver-jersey/src/main/resources/appserver.yml +++ b/appserver-jersey/src/main/resources/appserver.yml @@ -14,14 +14,16 @@ auth: resourceName: res_AppServer db: - # For Development environment, use H2 database. + # For Development environment, use H2 database with drop-and-create: # jdbcDriver: org.h2.Driver # jdbcUrl: jdbc:h2:mem:dev # hibernateDialect: org.hibernate.dialect.H2Dialect # liquibase: # enabled: false + # additionalProperties: + # jakarta.persistence.schema-generation.database.action: drop-and-create additionalProperties: - jakarta.persistence.schema-generation.database.action: drop-and-create + hibernate.hbm2ddl.auto: validate # hibernate.show_sql: true # hibernate.format_sql: true jdbcDriver: org.postgresql.Driver @@ -29,6 +31,9 @@ db: hibernateDialect: org.hibernate.dialect.PostgreSQLDialect username: radar password: radar + liquibase: + enabled: true + changelogs: db/changelog/db.changelog-master.yaml # GitHub configuration. github: diff --git a/appserver-jersey/src/main/resources/db/changelog/changes/00000000000000_initial_schema-20181129171324_changelog.yml b/appserver-jersey/src/main/resources/db/changelog/changes/00000000000000_initial_schema-20181129171324_changelog.yml new file mode 100644 index 00000000..ca12a3b3 --- /dev/null +++ b/appserver-jersey/src/main/resources/db/changelog/changes/00000000000000_initial_schema-20181129171324_changelog.yml @@ -0,0 +1,271 @@ +databaseChangeLog: + - changeSet: + id: 1543511610622-1 + author: yatharth (generated) + changes: + - createSequence: + sequenceName: hibernate_sequence + - changeSet: + id: 1543511610622-2 + author: yatharth (generated) + changes: + - createTable: + columns: + - column: + autoIncrement: true + constraints: + primaryKey: true + primaryKeyName: notificationsPK + name: id + type: BIGINT + - column: + constraints: + nullable: false + name: created_at + type: timestamp + - column: + constraints: + nullable: false + name: updated_at + type: timestamp + - column: + name: app_package + type: VARCHAR(255) + - column: + name: body + type: VARCHAR(255) + - column: + constraints: + nullable: false + name: delivered + type: BOOLEAN + - column: + name: dry_run + type: BOOLEAN + - column: + name: fcm_message_id + type: VARCHAR(255) + - column: + name: fcm_topic + type: VARCHAR(255) + - column: + constraints: + nullable: false + name: scheduled_time + type: timestamp + - column: + name: source_id + type: VARCHAR(255) + - column: + name: source_type + type: VARCHAR(255) + - column: + constraints: + nullable: false + name: title + type: VARCHAR(255) + - column: + name: ttl_seconds + type: INT + - column: + name: type + type: VARCHAR(255) + - column: + constraints: + nullable: false + name: validated + type: BOOLEAN + - column: + constraints: + nullable: false + name: user_id + type: BIGINT + tableName: notifications + - changeSet: + id: 1543511610622-3 + author: yatharth (generated) + changes: + - createTable: + columns: + - column: + autoIncrement: true + constraints: + primaryKey: true + primaryKeyName: projectsPK + name: id + type: BIGINT + - column: + constraints: + nullable: false + name: created_at + type: timestamp + - column: + constraints: + nullable: false + name: updated_at + type: timestamp + - column: + constraints: + nullable: false + name: project_id + type: VARCHAR(255) + tableName: projects + - changeSet: + id: 1543511610622-4 + author: yatharth (generated) + changes: + - createTable: + columns: + - column: + autoIncrement: true + constraints: + primaryKey: true + primaryKeyName: user_metricsPK + name: id + type: BIGINT + - column: + constraints: + nullable: false + name: created_at + type: timestamp + - column: + constraints: + nullable: false + name: updated_at + type: timestamp + - column: + name: last_delivered + type: timestamp + - column: + name: last_opened + type: timestamp + - column: + name: user_id + type: BIGINT + tableName: user_metrics + - changeSet: + id: 1543511610622-5 + author: yatharth (generated) + changes: + - createTable: + columns: + - column: + autoIncrement: true + constraints: + primaryKey: true + primaryKeyName: usersPK + name: id + type: BIGINT + - column: + constraints: + nullable: false + name: created_at + type: timestamp + - column: + constraints: + nullable: false + name: updated_at + type: timestamp + - column: + name: enrolment_date + type: timestamp + - column: + constraints: + nullable: false + name: fcm_token + type: VARCHAR(255) + - column: + constraints: + nullable: false + name: subject_id + type: VARCHAR(255) + - column: + name: timezone + type: DOUBLE + - column: + constraints: + nullable: false + name: project_id + type: BIGINT + - column: + name: usermetrics_id + type: BIGINT + tableName: users + - changeSet: + id: 1543511610622-6 + author: yatharth (generated) + changes: + - addUniqueConstraint: + columnNames: project_id + constraintName: UC_PROJECTSPROJECT_ID_COL + tableName: projects + - changeSet: + id: 1543511610622-7 + author: yatharth (generated) + changes: + - addUniqueConstraint: + columnNames: user_id, source_id, scheduled_time, title, body, type, ttl_seconds, + delivered, dry_run + constraintName: UKjdp6comtocl1fyipmur1fuo1h + tableName: notifications + - changeSet: + id: 1543511610622-8 + author: yatharth (generated) + changes: + - addUniqueConstraint: + columnNames: subject_id, fcm_token, project_id + constraintName: UKmm6u3xspqfqoolkjhsvdrqefq + tableName: users + - changeSet: + id: 1543511610622-9 + author: yatharth (generated) + changes: + - addForeignKeyConstraint: + baseColumnNames: user_id + baseTableName: user_metrics + constraintName: FK65c9asnnjs3q0lktqj103mvcv + deferrable: false + initiallyDeferred: false + referencedColumnNames: id + referencedTableName: users + validate: true + - changeSet: + id: 1543511610622-10 + author: yatharth (generated) + changes: + - addForeignKeyConstraint: + baseColumnNames: user_id + baseTableName: notifications + constraintName: FK9y21adhxn0ayjhfocscqox7bh + deferrable: false + initiallyDeferred: false + referencedColumnNames: id + referencedTableName: users + validate: true + - changeSet: + id: 1543511610622-11 + author: yatharth (generated) + changes: + - addForeignKeyConstraint: + baseColumnNames: usermetrics_id + baseTableName: users + constraintName: FKf3dy0yvpkkwtrxj8hutlt8615 + deferrable: false + initiallyDeferred: false + referencedColumnNames: id + referencedTableName: user_metrics + validate: true + - changeSet: + id: 1543511610622-12 + author: yatharth (generated) + changes: + - addForeignKeyConstraint: + baseColumnNames: project_id + baseTableName: users + constraintName: FKj4xjs6i0exxcgearpuykol477 + deferrable: false + initiallyDeferred: false + referencedColumnNames: id + referencedTableName: projects + validate: true + diff --git a/appserver-jersey/src/main/resources/db/changelog/changes/00000000000000_update_schema-20190408172324_changelog.yml b/appserver-jersey/src/main/resources/db/changelog/changes/00000000000000_update_schema-20190408172324_changelog.yml new file mode 100644 index 00000000..5e259f97 --- /dev/null +++ b/appserver-jersey/src/main/resources/db/changelog/changes/00000000000000_update_schema-20190408172324_changelog.yml @@ -0,0 +1,15 @@ +databaseChangeLog: + - changeSet: + id: 1554740802000-01 + author: yatharth + changes: + - addColumn: + columns: + - column: + constraints: + nullable: false + name: language + type: VARCHAR(255) + tableName: users + + diff --git a/appserver-jersey/src/main/resources/db/changelog/changes/00000000000000_update_schema-20190415142024_changelog.yml b/appserver-jersey/src/main/resources/db/changelog/changes/00000000000000_update_schema-20190415142024_changelog.yml new file mode 100644 index 00000000..9bb64754 --- /dev/null +++ b/appserver-jersey/src/main/resources/db/changelog/changes/00000000000000_update_schema-20190415142024_changelog.yml @@ -0,0 +1,38 @@ +databaseChangeLog: + - changeSet: + id: 1554740802000-01 + author: yatharth + changes: + - createTable: + columns: + - column: + autoIncrement: true + constraints: + primaryKey: true + primaryKeyName: notifAddDataPK + name: id + type: BIGINT + - column: + name: additional_key + type: VARCHAR(255) + - column: + name: additional_value + type: VARCHAR(12500) + - column: + name: notification_id + type: BIGINT + tableName: notification_additional_data + - changeSet: + id: 154351162088-9 + author: yatharth (generated) + changes: + - addForeignKeyConstraint: + baseColumnNames: notification_id + baseTableName: notification_additional_data + constraintName: FK65c9asnnjs3q8237gfs03mvcv + deferrable: false + initiallyDeferred: false + referencedColumnNames: id + referencedTableName: notifications + validate: true + diff --git a/appserver-jersey/src/main/resources/db/changelog/changes/00000000000000_update_schema-20190418153624_changelog.yml b/appserver-jersey/src/main/resources/db/changelog/changes/00000000000000_update_schema-20190418153624_changelog.yml new file mode 100644 index 00000000..10381a5a --- /dev/null +++ b/appserver-jersey/src/main/resources/db/changelog/changes/00000000000000_update_schema-20190418153624_changelog.yml @@ -0,0 +1,8 @@ +databaseChangeLog: + - changeSet: + id: 1554740802000-01 + author: yatharth + changes: + - addUniqueConstraint: + columnNames: fcm_token + tableName: users \ No newline at end of file diff --git a/appserver-jersey/src/main/resources/db/changelog/changes/00000000000000_update_schema-20190722162524_changelog.yml b/appserver-jersey/src/main/resources/db/changelog/changes/00000000000000_update_schema-20190722162524_changelog.yml new file mode 100644 index 00000000..617b79fd --- /dev/null +++ b/appserver-jersey/src/main/resources/db/changelog/changes/00000000000000_update_schema-20190722162524_changelog.yml @@ -0,0 +1,50 @@ +databaseChangeLog: + - changeSet: + id: 1563809365000-01 + author: yatharth + changes: + - addColumn: + columns: + - column: + name: fcm_condition + type: varchar(1000) + - column: + name: priority + type: varchar(100) + - column: + name: sound + type: varchar(255) + - column: + name: badge + type: varchar(255) + - column: + name: subtitle + type: varchar(255) + - column: + name: icon + type: varchar(255) + - column: + name: color + type: varchar(255) + - column: + name: body_loc_key + type: varchar(255) + - column: + name: body_loc_args + type: varchar(255) + - column: + name: title_loc_key + type: varchar(255) + - column: + name: title_loc_args + type: varchar(255) + - column: + name: tag + type: varchar(100) + - column: + name: click_action + type: varchar(255) + - column: + name: mutable_content + type: boolean + tableName: notifications \ No newline at end of file diff --git a/appserver-jersey/src/main/resources/db/changelog/changes/00000000000000_update_schema-20190722184824_changelog.yml b/appserver-jersey/src/main/resources/db/changelog/changes/00000000000000_update_schema-20190722184824_changelog.yml new file mode 100644 index 00000000..d7fbc6ad --- /dev/null +++ b/appserver-jersey/src/main/resources/db/changelog/changes/00000000000000_update_schema-20190722184824_changelog.yml @@ -0,0 +1,11 @@ +databaseChangeLog: + - changeSet: + id: 11563817761000-01 + author: yatharth + changes: + - addColumn: + columns: + - column: + name: android_channel_id + type: varchar(255) + tableName: notifications diff --git a/appserver-jersey/src/main/resources/db/changelog/changes/00000000000000_update_schema-20190722185424_changelog.yml b/appserver-jersey/src/main/resources/db/changelog/changes/00000000000000_update_schema-20190722185424_changelog.yml new file mode 100644 index 00000000..06c800db --- /dev/null +++ b/appserver-jersey/src/main/resources/db/changelog/changes/00000000000000_update_schema-20190722185424_changelog.yml @@ -0,0 +1,10 @@ +databaseChangeLog: + - changeSet: + id: 1563818104000-01 + author: yatharth + changes: + - addDefaultValue: + columnDataType: boolean + columnName: mutable_content + defaultValueBoolean: false + tableName: notifications diff --git a/appserver-jersey/src/main/resources/db/changelog/changes/00000000000000_update_schema-20191106172924_changelog.yml b/appserver-jersey/src/main/resources/db/changelog/changes/00000000000000_update_schema-20191106172924_changelog.yml new file mode 100644 index 00000000..d8e6a95c --- /dev/null +++ b/appserver-jersey/src/main/resources/db/changelog/changes/00000000000000_update_schema-20191106172924_changelog.yml @@ -0,0 +1,157 @@ +databaseChangeLog: + - changeSet: + id: 1554740802002-01 + author: pauline + changes: + - createTable: + columns: + - column: + autoIncrement: true + constraints: + primaryKey: true + primaryKeyName: dataMessagesPK + name: id + type: BIGINT + - column: + constraints: + nullable: false + name: created_at + type: timestamp + - column: + constraints: + nullable: false + name: updated_at + type: timestamp + - column: + name: app_package + type: VARCHAR(255) + - column: + constraints: + nullable: false + name: delivered + type: BOOLEAN + - column: + name: dry_run + type: BOOLEAN + - column: + name: fcm_message_id + type: VARCHAR(255) + - column: + name: fcm_topic + type: VARCHAR(255) + - column: + constraints: + nullable: false + name: scheduled_time + type: timestamp + - column: + name: source_id + type: VARCHAR(255) + - column: + name: source_type + type: VARCHAR(255) + - column: + name: ttl_seconds + type: INT + - column: + constraints: + nullable: false + name: validated + type: BOOLEAN + - column: + constraints: + nullable: false + name: user_id + type: BIGINT + - column: + name: fcm_condition + type: varchar(1000) + - column: + name: priority + type: varchar(100) + - column: + name: mutable_content + type: boolean + tableName: data_messages + - changeSet: + id: 1554740802002-05 + author: pauline + changes: + - createTable: + columns: + - column: + autoIncrement: true + constraints: + primaryKey: true + primaryKeyName: dataMsgMapPK + name: id + type: BIGINT + - column: + name: key + type: VARCHAR(255) + - column: + name: value + type: VARCHAR(12500) + - column: + name: data_message_id + type: BIGINT + tableName: data_message_map + - changeSet: + id: 154351162083-06 + author: pauline + changes: + - addForeignKeyConstraint: + baseColumnNames: data_message_id + baseTableName: data_message_map + constraintName: FK65c9asnnjs3q8237gfs03mvcd + deferrable: false + initiallyDeferred: false + referencedColumnNames: id + referencedTableName: data_messages + validate: true + - changeSet: + id: 1573493744-01 + author: pauline + changes: + - createTable: + columns: + - column: + autoIncrement: true + constraints: + primaryKey: true + primaryKeyName: dataMsgStateEventPK + name: id + type: BIGINT + - column: + name: state + type: VARCHAR(255) + constraints: + nullable: false + - column: + name: time + type: timestamp + constraints: + nullable: false + - column: + constraints: + nullable: false + name: data_message_id + type: BIGINT + - column: + name: associated_info + type: VARCHAR(1250) + tableName: data_message_state_events + - changeSet: + id: 1573493744-02 + author: pauline + changes: + - addForeignKeyConstraint: + baseColumnNames: data_message_id + baseTableName: data_message_state_events + constraintName: FK65c9asnnjs3q8237gfs04mvcw + deferrable: false + initiallyDeferred: false + referencedColumnNames: id + referencedTableName: data_messages + validate: true + onDelete: CASCADE diff --git a/appserver-jersey/src/main/resources/db/changelog/changes/00000000000000_update_schema-20200305184827_changelog.yml b/appserver-jersey/src/main/resources/db/changelog/changes/00000000000000_update_schema-20200305184827_changelog.yml new file mode 100644 index 00000000..1843b60a --- /dev/null +++ b/appserver-jersey/src/main/resources/db/changelog/changes/00000000000000_update_schema-20200305184827_changelog.yml @@ -0,0 +1,116 @@ +databaseChangeLog: + - changeSet: + id: 1583418918003-01 + author: pauline + changes: + - addColumn: + columns: + - column: + name: task_id + type: BIGINT + tableName: notifications + - changeSet: + id: 1583418918003-02 + author: pauline + changes: + - addColumn: + columns: + - column: + name: task_id + type: BIGINT + tableName: data_messages + - changeSet: + id: 1583418918003-03 + author: pauline + changes: + - createTable: + columns: + - column: + autoIncrement: true + constraints: + primaryKey: true + primaryKeyName: tasksPK + name: id + type: BIGINT + - column: + constraints: + nullable: false + name: created_at + type: timestamp + - column: + constraints: + nullable: false + name: updated_at + type: timestamp + - column: + name: completed + type: boolean + constraints: + nullable: false + - column: + name: timestamp + type: timestamp(6) + constraints: + nullable: false + - column: + name: time_completed + type: timestamp(6) + constraints: + nullable: true + - column: + name: name + type: VARCHAR(1250) + - column: + name: type + type: VARCHAR(1250) + - column: + name: estimated_completion_time + type: BIGINT + - column: + name: completion_window + type: BIGINT + - column: + name: warning + type: VARCHAR(1250) + - column: + name: is_clinical + type: boolean + - column: + name: show_in_calendar + type: boolean + - column: + name: is_demo + type: boolean + - column: + name: priority + type: int + - column: + name: n_questions + type: int + - column: + constraints: + nullable: false + name: user_id + type: BIGINT + tableName: tasks + - changeSet: + id: 1583418918003-04 + author: pauline + changes: + - addForeignKeyConstraint: + baseColumnNames: user_id + baseTableName: tasks + constraintName: FK9ygdsgfsdhxn0ayjhfocscqox7bh + deferrable: false + initiallyDeferred: false + referencedColumnNames: id + referencedTableName: users + validate: true + - changeSet: + id: 1583418918003-05 + author: pauline + changes: + - modifyDataType: + columnName: timezone + newDataType: VARCHAR(255) + tableName: users diff --git a/appserver-jersey/src/main/resources/db/changelog/changes/00000000000001_update_schema-20190726152824_changelog.yml b/appserver-jersey/src/main/resources/db/changelog/changes/00000000000001_update_schema-20190726152824_changelog.yml new file mode 100644 index 00000000..18848455 --- /dev/null +++ b/appserver-jersey/src/main/resources/db/changelog/changes/00000000000001_update_schema-20190726152824_changelog.yml @@ -0,0 +1,47 @@ +databaseChangeLog: + - changeSet: + id: 1564153120000-01 + author: yatharth + changes: + - createTable: + columns: + - column: + autoIncrement: true + constraints: + primaryKey: true + primaryKeyName: notifStateEventPK + name: id + type: BIGINT + - column: + name: state + type: VARCHAR(255) + constraints: + nullable: false + - column: + name: time + type: timestamp + constraints: + nullable: false + - column: + constraints: + nullable: false + name: notification_id + type: BIGINT + - column: + name: associated_info + type: VARCHAR(1250) + tableName: notification_state_events + - changeSet: + id: 1564153120000-02 + author: yatharth + changes: + - addForeignKeyConstraint: + baseColumnNames: notification_id + baseTableName: notification_state_events + constraintName: FK65c9asnnjs3q8237gfs04mvcv + deferrable: false + initiallyDeferred: false + referencedColumnNames: id + referencedTableName: notifications + validate: true + diff --git a/appserver-jersey/src/main/resources/db/changelog/changes/00000000000001_update_schema-20190726164324_changelog.yml b/appserver-jersey/src/main/resources/db/changelog/changes/00000000000001_update_schema-20190726164324_changelog.yml new file mode 100644 index 00000000..7153995a --- /dev/null +++ b/appserver-jersey/src/main/resources/db/changelog/changes/00000000000001_update_schema-20190726164324_changelog.yml @@ -0,0 +1,10 @@ +databaseChangeLog: + - changeSet: + id: 1564155800000-01 + author: yatharth + changes: + - addDefaultValue: + columnDataType: VARCHAR(255) + columnName: state + defaultValue: UNKNOWN + tableName: notification_state_events diff --git a/appserver-jersey/src/main/resources/db/changelog/changes/00000000000001_update_schema-20191009192824_changelog.yml b/appserver-jersey/src/main/resources/db/changelog/changes/00000000000001_update_schema-20191009192824_changelog.yml new file mode 100644 index 00000000..0691e77d --- /dev/null +++ b/appserver-jersey/src/main/resources/db/changelog/changes/00000000000001_update_schema-20191009192824_changelog.yml @@ -0,0 +1,23 @@ +databaseChangeLog: + - changeSet: + id: 1570646885000-01 + author: yatharth + changes: + - dropForeignKeyConstraint: + baseTableName: notification_state_events + constraintName: FK65c9asnnjs3q8237gfs04mvcv + - changeSet: + id: 1570646898000-02 + author: yatharth + changes: + - addForeignKeyConstraint: + baseColumnNames: notification_id + baseTableName: notification_state_events + constraintName: FK65c9asnnjs3q8237gfs04mvcv + deferrable: false + initiallyDeferred: false + referencedColumnNames: id + referencedTableName: notifications + validate: true + onDelete: CASCADE + diff --git a/appserver-jersey/src/main/resources/db/changelog/changes/00000000000002_update_schema-20200309192824_changelog.yml b/appserver-jersey/src/main/resources/db/changelog/changes/00000000000002_update_schema-20200309192824_changelog.yml new file mode 100644 index 00000000..464885f8 --- /dev/null +++ b/appserver-jersey/src/main/resources/db/changelog/changes/00000000000002_update_schema-20200309192824_changelog.yml @@ -0,0 +1,9 @@ +databaseChangeLog: + - changeSet: + id: 1583418918003-01 + author: pauline + changes: + - modifyDataType: + columnName: timezone + newDataType: VARCHAR(255) + tableName: users diff --git a/appserver-jersey/src/main/resources/db/changelog/changes/00000000000002_update_schema-20220705192824_changelog.yml b/appserver-jersey/src/main/resources/db/changelog/changes/00000000000002_update_schema-20220705192824_changelog.yml new file mode 100644 index 00000000..0ae6da66 --- /dev/null +++ b/appserver-jersey/src/main/resources/db/changelog/changes/00000000000002_update_schema-20220705192824_changelog.yml @@ -0,0 +1,37 @@ +databaseChangeLog: + - changeSet: + id: 1554740802022-05 + author: pauline + changes: + - createTable: + columns: + - column: + autoIncrement: true + constraints: + primaryKey: true + primaryKeyName: attributesMapPK + name: id + type: BIGINT + - column: + name: key + type: VARCHAR(255) + - column: + name: value + type: VARCHAR(12500) + - column: + name: user_id + type: BIGINT + tableName: attributes_map + - changeSet: + id: 154351162183-06 + author: pauline + changes: + - addForeignKeyConstraint: + baseColumnNames: user_id + baseTableName: attributes_map + constraintName: FK65c9nnjs3q8237gfs03mvcd + deferrable: false + initiallyDeferred: false + referencedColumnNames: id + referencedTableName: users + validate: true diff --git a/appserver-jersey/src/main/resources/db/changelog/changes/00000000000002_update_schema-20220802152824_changelog.yml b/appserver-jersey/src/main/resources/db/changelog/changes/00000000000002_update_schema-20220802152824_changelog.yml new file mode 100644 index 00000000..e2ae6efb --- /dev/null +++ b/appserver-jersey/src/main/resources/db/changelog/changes/00000000000002_update_schema-20220802152824_changelog.yml @@ -0,0 +1,49 @@ +databaseChangeLog: + - changeSet: + id: 1659439750000-01 + author: yatharth + changes: + - createTable: + columns: + - column: + autoIncrement: true + constraints: + primaryKey: true + primaryKeyName: taskStateEventPK + name: id + type: BIGINT + - column: + name: state + type: VARCHAR(255) + defaultValue: UNKNOWN + constraints: + nullable: false + - column: + name: time + type: timestamp + constraints: + nullable: false + - column: + constraints: + nullable: false + name: task_id + type: BIGINT + - column: + name: associated_info + type: VARCHAR(1250) + tableName: task_state_events + - changeSet: + id: 1659439750000-02 + author: yatharth + changes: + - addForeignKeyConstraint: + baseColumnNames: task_id + baseTableName: task_state_events + constraintName: FK65c9ajsldjasldj8237gfs04mvcv + deferrable: false + initiallyDeferred: false + referencedColumnNames: id + referencedTableName: tasks + validate: true + onDelete: CASCADE + diff --git a/appserver-jersey/src/main/resources/db/changelog/changes/00000000000002_update_schema-20220802184827_changelog.yml b/appserver-jersey/src/main/resources/db/changelog/changes/00000000000002_update_schema-20220802184827_changelog.yml new file mode 100644 index 00000000..d8381064 --- /dev/null +++ b/appserver-jersey/src/main/resources/db/changelog/changes/00000000000002_update_schema-20220802184827_changelog.yml @@ -0,0 +1,14 @@ +databaseChangeLog: + - changeSet: + id: 1659441385003-01 + author: yatharth + changes: + - addColumn: + columns: + - column: + name: status + type: VARCHAR(255) + defaultValue: UNKNOWN + constraints: + nullable: false + tableName: tasks \ No newline at end of file diff --git a/appserver-jersey/src/main/resources/db/changelog/changes/00000000000002_update_schema-20231020184827_changelog.yml b/appserver-jersey/src/main/resources/db/changelog/changes/00000000000002_update_schema-20231020184827_changelog.yml new file mode 100644 index 00000000..771504a1 --- /dev/null +++ b/appserver-jersey/src/main/resources/db/changelog/changes/00000000000002_update_schema-20231020184827_changelog.yml @@ -0,0 +1,19 @@ +databaseChangeLog: + - changeSet: + id: 1697819541-01 + author: pauline + changes: + - dropForeignKeyConstraint: + baseColumnNames: user_id + baseTableName: user_metrics + constraintName: FK65c9asnnjs3q0lktqj103mvcv + deferrable: false + initiallyDeferred: false + referencedColumnNames: id + referencedTableName: users + validate: true + - dropColumn: + columns: + - column: + name: user_id + tableName: user_metrics \ No newline at end of file diff --git a/appserver-jersey/src/main/resources/db/changelog/changes/00000000000002_update_schema-20240522185927_changelog.yml b/appserver-jersey/src/main/resources/db/changelog/changes/00000000000002_update_schema-20240522185927_changelog.yml new file mode 100644 index 00000000..499e2984 --- /dev/null +++ b/appserver-jersey/src/main/resources/db/changelog/changes/00000000000002_update_schema-20240522185927_changelog.yml @@ -0,0 +1,16 @@ +databaseChangeLog: + - changeSet: + id: 1543511610622-8 + author: pauline + changes: + - dropUniqueConstraint: + tableName: users + constraintName: UKmm6u3xspqfqoolkjhsvdrqefq + - changeSet: + id: 1716400827373-1 + author: pauline + changes: + - addUniqueConstraint: + columnNames: subject_id, project_id + constraintName: UKg6m4nzwvxqpwtrbeynasdcplo + tableName: users diff --git a/appserver-jersey/src/main/resources/db/changelog/changes/00000000000002_update_schema-20240704090100_changelog.yml b/appserver-jersey/src/main/resources/db/changelog/changes/00000000000002_update_schema-20240704090100_changelog.yml new file mode 100644 index 00000000..bfc4534e --- /dev/null +++ b/appserver-jersey/src/main/resources/db/changelog/changes/00000000000002_update_schema-20240704090100_changelog.yml @@ -0,0 +1,11 @@ +databaseChangeLog: + - changeSet: + id: 12583923408-1 + author: pim + changes: + - addColumn: + columns: + - column: + name: email + type: VARCHAR(255) + tableName: users diff --git a/appserver-jersey/src/main/resources/db/changelog/changes/00000000000002_update_schema-20240705131000_changelog.yml b/appserver-jersey/src/main/resources/db/changelog/changes/00000000000002_update_schema-20240705131000_changelog.yml new file mode 100644 index 00000000..1de26b05 --- /dev/null +++ b/appserver-jersey/src/main/resources/db/changelog/changes/00000000000002_update_schema-20240705131000_changelog.yml @@ -0,0 +1,18 @@ +databaseChangeLog: + - changeSet: + id: 1720181460-1 + author: yatharth + changes: + - addColumn: + columns: + - column: + name: email_enabled + type: boolean + defaultValueBoolean: false + - column: + name: email_title + type: TEXT + - column: + name: email_body + type: TEXT + tableName: notifications diff --git a/appserver-jersey/src/main/resources/db/changelog/changes/00000000000003_update_schema-20260313120000_changelog.yml b/appserver-jersey/src/main/resources/db/changelog/changes/00000000000003_update_schema-20260313120000_changelog.yml new file mode 100644 index 00000000..02ff1c56 --- /dev/null +++ b/appserver-jersey/src/main/resources/db/changelog/changes/00000000000003_update_schema-20260313120000_changelog.yml @@ -0,0 +1,50 @@ +databaseChangeLog: + - changeSet: + id: 1773403200000-1 + author: aditya + changes: + - renameColumn: + tableName: attributes_map + oldColumnName: key + newColumnName: attribute_key + columnDataType: varchar(255) + + - renameColumn: + tableName: attributes_map + oldColumnName: value + newColumnName: attribute_value + columnDataType: varchar(255) + + - renameColumn: + tableName: data_message_map + oldColumnName: key + newColumnName: data_message_key + columnDataType: varchar(255) + + - renameColumn: + tableName: data_message_map + oldColumnName: value + newColumnName: data_message_value + columnDataType: varchar(255) + + rollback: + - renameColumn: + tableName: attributes_map + oldColumnName: attribute_key + newColumnName: key + columnDataType: varchar(255) + - renameColumn: + tableName: attributes_map + oldColumnName: attribute_value + newColumnName: value + columnDataType: varchar(255) + - renameColumn: + tableName: data_message_map + oldColumnName: data_message_key + newColumnName: key + columnDataType: varchar(255) + - renameColumn: + tableName: data_message_map + oldColumnName: data_message_value + newColumnName: value + columnDataType: varchar(255) diff --git a/appserver-jersey/src/main/resources/db/changelog/changes/quartz_init.xml b/appserver-jersey/src/main/resources/db/changelog/changes/quartz_init.xml new file mode 100644 index 00000000..01c0d969 --- /dev/null +++ b/appserver-jersey/src/main/resources/db/changelog/changes/quartz_init.xml @@ -0,0 +1,358 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/appserver-jersey/src/main/resources/db/changelog/db.changelog-master.yaml b/appserver-jersey/src/main/resources/db/changelog/db.changelog-master.yaml new file mode 100644 index 00000000..9078f53d --- /dev/null +++ b/appserver-jersey/src/main/resources/db/changelog/db.changelog-master.yaml @@ -0,0 +1,3 @@ +databaseChangeLog: + - includeAll: + path: db/changelog/changes/ diff --git a/microservices/cloud-messaging-service/src/main/resources/cloud-messaging-service.yml b/microservices/cloud-messaging-service/src/main/resources/cloud-messaging-service.yml index 95f8a3a6..eab7bd0d 100644 --- a/microservices/cloud-messaging-service/src/main/resources/cloud-messaging-service.yml +++ b/microservices/cloud-messaging-service/src/main/resources/cloud-messaging-service.yml @@ -6,21 +6,26 @@ server: isJmxEnabled: false db: - # For Development environment, use H2 database. - jdbcDriver: org.h2.Driver - jdbcUrl: jdbc:h2:mem:appserver_cloud_messaging - hibernateDialect: org.hibernate.dialect.H2Dialect - liquibase: - enabled: false + # For Development environment, use H2 database with drop-and-create: + # jdbcDriver: org.h2.Driver + # jdbcUrl: jdbc:h2:mem:appserver_cloud_messaging + # hibernateDialect: org.hibernate.dialect.H2Dialect + # liquibase: + # enabled: false + # additionalProperties: + # jakarta.persistence.schema-generation.database.action: drop-and-create additionalProperties: - jakarta.persistence.schema-generation.database.action: drop-and-create -# hibernate.show_sql: true -# hibernate.format_sql: true -# jdbcDriver: org.postgresql.Driver -# jdbcUrl: jdbc:postgresql://localhost:5432/appserver_cloud_messaging -# hibernateDialect: org.hibernate.dialect.PostgreSQLDialect -# username: radar -# password: radar + hibernate.hbm2ddl.auto: validate + # hibernate.show_sql: true + # hibernate.format_sql: true + jdbcDriver: org.postgresql.Driver + jdbcUrl: jdbc:postgresql://localhost:5432/appserver_cloud_messaging + hibernateDialect: org.hibernate.dialect.PostgreSQLDialect + username: radar + password: radar + liquibase: + enabled: true + changelogs: db/changelog/db.changelog-master.yaml eventBus: numThreads: 3 diff --git a/microservices/cloud-messaging-service/src/main/resources/db/changelog/changes/00000000000000_initial_schema.yml b/microservices/cloud-messaging-service/src/main/resources/db/changelog/changes/00000000000000_initial_schema.yml new file mode 100644 index 00000000..28b62628 --- /dev/null +++ b/microservices/cloud-messaging-service/src/main/resources/db/changelog/changes/00000000000000_initial_schema.yml @@ -0,0 +1,211 @@ +databaseChangeLog: + - changeSet: + id: 20260313-cloud-messaging-service-initial-schema + author: aditya + + changes: + - createTable: + tableName: notifications + columns: + - column: + name: id + type: BIGINT + autoIncrement: true + constraints: + primaryKey: true + nullable: false + - column: + name: user_id + type: BIGINT + constraints: + nullable: false + - column: + name: subject_id + type: VARCHAR(255) + constraints: + nullable: false + - column: + name: project_id + type: VARCHAR(255) + constraints: + nullable: false + - column: + name: task_id + type: BIGINT + - column: + name: source_id + type: VARCHAR(255) + - column: + name: scheduled_time + type: TIMESTAMP + constraints: + nullable: false + - column: + name: ttl_seconds + type: INT + defaultValueNumeric: "0" + - column: + name: fcm_message_id + type: VARCHAR(255) + - column: + name: fcm_topic + type: VARCHAR(255) + - column: + name: fcm_condition + type: VARCHAR(255) + - column: + name: delivered + type: BOOLEAN + defaultValueBoolean: false + - column: + name: validated + type: BOOLEAN + defaultValueBoolean: false + - column: + name: app_package + type: VARCHAR(255) + - column: + name: source_type + type: VARCHAR(255) + - column: + name: dry_run + type: BOOLEAN + defaultValueBoolean: false + - column: + name: priority + type: VARCHAR(255) + - column: + name: mutable_content + type: BOOLEAN + defaultValueBoolean: false + - column: + name: title + type: VARCHAR(255) + constraints: + nullable: false + - column: + name: body + type: VARCHAR(255) + - column: + name: type + type: VARCHAR(255) + - column: + name: sound + type: VARCHAR(255) + - column: + name: badge + type: VARCHAR(255) + - column: + name: subtitle + type: VARCHAR(255) + - column: + name: icon + type: VARCHAR(255) + - column: + name: color + type: VARCHAR(255) + - column: + name: body_loc_key + type: VARCHAR(255) + - column: + name: body_loc_args + type: VARCHAR(255) + - column: + name: title_loc_key + type: VARCHAR(255) + - column: + name: title_loc_args + type: VARCHAR(255) + - column: + name: android_channel_id + type: VARCHAR(255) + - column: + name: tag + type: VARCHAR(255) + - column: + name: click_action + type: VARCHAR(255) + - column: + name: email_enabled + type: BOOLEAN + defaultValueBoolean: false + - column: + name: email_title + type: TEXT + - column: + name: email_body + type: TEXT + - column: + name: created_at + type: TIMESTAMP + constraints: + nullable: false + - column: + name: updated_at + type: TIMESTAMP + constraints: + nullable: false + + - addUniqueConstraint: + tableName: notifications + columnNames: user_id, source_id, scheduled_time, title, body, type, ttl_seconds, delivered, dry_run + constraintName: uk_notifications_unique + + - createTable: + tableName: notifications_additional_data + columns: + - column: + name: Notification_id + type: BIGINT + constraints: + nullable: false + - column: + name: additional_key + type: VARCHAR(255) + - column: + name: additional_value + type: VARCHAR(255) + + - addForeignKeyConstraint: + baseTableName: notifications_additional_data + baseColumnNames: Notification_id + referencedTableName: notifications + referencedColumnNames: id + constraintName: fk_notification_additional_data + + - createTable: + tableName: notification_state_events + columns: + - column: + name: id + type: BIGINT + autoIncrement: true + constraints: + primaryKey: true + nullable: false + - column: + name: state + type: VARCHAR(255) + constraints: + nullable: false + - column: + name: time + type: TIMESTAMP + constraints: + nullable: false + - column: + name: associated_info + type: VARCHAR(1250) + - column: + name: notification_id + type: BIGINT + constraints: + nullable: false + + - addForeignKeyConstraint: + baseTableName: notification_state_events + baseColumnNames: notification_id + referencedTableName: notifications + referencedColumnNames: id + constraintName: fk_notification_state_events_notification + onDelete: CASCADE diff --git a/microservices/cloud-messaging-service/src/main/resources/db/changelog/db.changelog-master.yaml b/microservices/cloud-messaging-service/src/main/resources/db/changelog/db.changelog-master.yaml new file mode 100644 index 00000000..9078f53d --- /dev/null +++ b/microservices/cloud-messaging-service/src/main/resources/db/changelog/db.changelog-master.yaml @@ -0,0 +1,3 @@ +databaseChangeLog: + - includeAll: + path: db/changelog/changes/ diff --git a/microservices/project-service/src/main/resources/db/changelog/changes/00000000000000_initial_schema.yml b/microservices/project-service/src/main/resources/db/changelog/changes/00000000000000_initial_schema.yml new file mode 100644 index 00000000..5c7b6c50 --- /dev/null +++ b/microservices/project-service/src/main/resources/db/changelog/changes/00000000000000_initial_schema.yml @@ -0,0 +1,32 @@ +databaseChangeLog: + - changeSet: + id: 20260313-project-service-initial-schema + author: aditya + + changes: + - createTable: + tableName: projects + columns: + - column: + name: id + type: BIGINT + autoIncrement: true + constraints: + primaryKey: true + nullable: false + - column: + name: project_id + type: VARCHAR(255) + constraints: + nullable: false + unique: true + - column: + name: created_at + type: TIMESTAMP + constraints: + nullable: false + - column: + name: updated_at + type: TIMESTAMP + constraints: + nullable: false diff --git a/microservices/project-service/src/main/resources/db/changelog/db.changelog-master.yaml b/microservices/project-service/src/main/resources/db/changelog/db.changelog-master.yaml new file mode 100644 index 00000000..9078f53d --- /dev/null +++ b/microservices/project-service/src/main/resources/db/changelog/db.changelog-master.yaml @@ -0,0 +1,3 @@ +databaseChangeLog: + - includeAll: + path: db/changelog/changes/ diff --git a/microservices/project-service/src/main/resources/project-service.yml b/microservices/project-service/src/main/resources/project-service.yml index a76a47fe..887be2e8 100644 --- a/microservices/project-service/src/main/resources/project-service.yml +++ b/microservices/project-service/src/main/resources/project-service.yml @@ -6,19 +6,24 @@ server: isJmxEnabled: false db: - # For Development environment, use H2 database. - jdbcDriver: org.h2.Driver - jdbcUrl: jdbc:h2:mem:appserver_project - hibernateDialect: org.hibernate.dialect.H2Dialect - liquibase: - enabled: false + # For Development environment, use H2 database with drop-and-create: + # jdbcDriver: org.h2.Driver + # jdbcUrl: jdbc:h2:mem:appserver_project + # hibernateDialect: org.hibernate.dialect.H2Dialect + # liquibase: + # enabled: false + # additionalProperties: + # jakarta.persistence.schema-generation.database.action: drop-and-create additionalProperties: - jakarta.persistence.schema-generation.database.action: drop-and-create -# hibernate.show_sql: true -# hibernate.format_sql: true -# jdbcDriver: org.postgresql.Driver -# jdbcUrl: jdbc:postgresql://localhost:5432/appserver_project -# hibernateDialect: org.hibernate.dialect.PostgreSQLDialect -# username: radar -# password: radar + hibernate.hbm2ddl.auto: validate + # hibernate.show_sql: true + # hibernate.format_sql: true + jdbcDriver: org.postgresql.Driver + jdbcUrl: jdbc:postgresql://localhost:5432/appserver_project + hibernateDialect: org.hibernate.dialect.PostgreSQLDialect + username: radar + password: radar + liquibase: + enabled: true + changelogs: db/changelog/db.changelog-master.yaml diff --git a/microservices/task-service/src/main/resources/db/changelog/changes/00000000000000_initial_schema.yml b/microservices/task-service/src/main/resources/db/changelog/changes/00000000000000_initial_schema.yml new file mode 100644 index 00000000..7a51878d --- /dev/null +++ b/microservices/task-service/src/main/resources/db/changelog/changes/00000000000000_initial_schema.yml @@ -0,0 +1,134 @@ +databaseChangeLog: + - changeSet: + id: 1773682377000-1 + author: aditya + + changes: + - createTable: + tableName: tasks + columns: + - column: + name: id + type: BIGINT + autoIncrement: true + constraints: + primaryKey: true + nullable: false + - column: + name: completed + type: BOOLEAN + constraints: + nullable: false + - column: + name: timestamp + type: TIMESTAMP + constraints: + nullable: false + - column: + name: name + type: VARCHAR(255) + constraints: + nullable: false + - column: + name: type + type: VARCHAR(255) + constraints: + nullable: false + - column: + name: estimated_completion_time + type: INT + defaultValueNumeric: 0 + - column: + name: completion_window + type: BIGINT + constraints: + nullable: false + - column: + name: warning + type: VARCHAR(255) + - column: + name: is_clinical + type: BOOLEAN + - column: + name: time_completed + type: TIMESTAMP + - column: + name: show_in_calendar + type: BOOLEAN + constraints: + nullable: false + - column: + name: is_demo + type: BOOLEAN + constraints: + nullable: false + - column: + name: priority + type: INT + defaultValueNumeric: 0 + constraints: + nullable: false + - column: + name: n_questions + type: INT + defaultValueNumeric: 0 + constraints: + nullable: false + - column: + name: user_id + type: BIGINT + constraints: + nullable: false + - column: + name: status + type: VARCHAR(255) + defaultValue: UNKNOWN + constraints: + nullable: false + - column: + name: created_at + type: TIMESTAMP + constraints: + nullable: false + - column: + name: updated_at + type: TIMESTAMP + constraints: + nullable: false + + - createTable: + tableName: task_state_events + columns: + - column: + name: id + type: BIGINT + autoIncrement: true + constraints: + primaryKey: true + nullable: false + - column: + name: state + type: VARCHAR(255) + constraints: + nullable: false + - column: + name: time + type: TIMESTAMP + constraints: + nullable: false + - column: + name: associated_info + type: VARCHAR(1250) + - column: + name: task_id + type: BIGINT + constraints: + nullable: false + + - addForeignKeyConstraint: + baseTableName: task_state_events + baseColumnNames: task_id + referencedTableName: tasks + referencedColumnNames: id + constraintName: fk_task_state_events_task + onDelete: CASCADE diff --git a/microservices/task-service/src/main/resources/db/changelog/db.changelog-master.yaml b/microservices/task-service/src/main/resources/db/changelog/db.changelog-master.yaml new file mode 100644 index 00000000..9078f53d --- /dev/null +++ b/microservices/task-service/src/main/resources/db/changelog/db.changelog-master.yaml @@ -0,0 +1,3 @@ +databaseChangeLog: + - includeAll: + path: db/changelog/changes/ diff --git a/microservices/task-service/src/main/resources/task-service.yml b/microservices/task-service/src/main/resources/task-service.yml index bfdd9763..b79e97fc 100644 --- a/microservices/task-service/src/main/resources/task-service.yml +++ b/microservices/task-service/src/main/resources/task-service.yml @@ -6,21 +6,26 @@ server: isJmxEnabled: false db: - # For Development environment, use H2 database. - jdbcDriver: org.h2.Driver - jdbcUrl: jdbc:h2:mem:appserver_task - hibernateDialect: org.hibernate.dialect.H2Dialect - liquibase: - enabled: false + # For Development environment, use H2 database with drop-and-create: + # jdbcDriver: org.h2.Driver + # jdbcUrl: jdbc:h2:mem:appserver_task + # hibernateDialect: org.hibernate.dialect.H2Dialect + # liquibase: + # enabled: false + # additionalProperties: + # jakarta.persistence.schema-generation.database.action: drop-and-create additionalProperties: - jakarta.persistence.schema-generation.database.action: drop-and-create -# hibernate.show_sql: true -# hibernate.format_sql: true -# jdbcDriver: org.postgresql.Driver -# jdbcUrl: jdbc:postgresql://localhost:5432/appserver_task -# hibernateDialect: org.hibernate.dialect.PostgreSQLDialect -# username: radar -# password: radar + hibernate.hbm2ddl.auto: validate + # hibernate.show_sql: true + # hibernate.format_sql: true + jdbcDriver: org.postgresql.Driver + jdbcUrl: jdbc:postgresql://localhost:5432/appserver_task + hibernateDialect: org.hibernate.dialect.PostgreSQLDialect + username: radar + password: radar + liquibase: + enabled: true + changelogs: db/changelog/db.changelog-master.yaml eventBus: numThreads: 3 diff --git a/microservices/user-service/src/main/resources/db/changelog/changes/00000000000000_initial_schema.yml b/microservices/user-service/src/main/resources/db/changelog/changes/00000000000000_initial_schema.yml new file mode 100644 index 00000000..0feec42e --- /dev/null +++ b/microservices/user-service/src/main/resources/db/changelog/changes/00000000000000_initial_schema.yml @@ -0,0 +1,118 @@ +databaseChangeLog: + - changeSet: + id: 1773682377000-1 + author: aditya + + changes: + - createTable: + tableName: user_metrics + columns: + - column: + name: id + type: BIGINT + autoIncrement: true + constraints: + primaryKey: true + nullable: false + - column: + name: last_opened + type: TIMESTAMP + - column: + name: last_delivered + type: TIMESTAMP + - column: + name: created_at + type: TIMESTAMP + constraints: + nullable: false + - column: + name: updated_at + type: TIMESTAMP + constraints: + nullable: false + + - createTable: + tableName: users + columns: + - column: + name: id + type: BIGINT + autoIncrement: true + constraints: + primaryKey: true + nullable: false + - column: + name: subject_id + type: VARCHAR(255) + constraints: + nullable: false + - column: + name: email + type: VARCHAR(255) + - column: + name: fcm_token + type: VARCHAR(255) + constraints: + nullable: false + unique: true + - column: + name: project_id + type: VARCHAR(255) + constraints: + nullable: false + - column: + name: enrolment_date + type: TIMESTAMP + - column: + name: usermetrics_id + type: BIGINT + - column: + name: timezone + type: VARCHAR(255) + - column: + name: language + type: VARCHAR(255) + - column: + name: created_at + type: TIMESTAMP + constraints: + nullable: false + - column: + name: updated_at + type: TIMESTAMP + constraints: + nullable: false + + - addUniqueConstraint: + tableName: users + columnNames: subject_id, project_id + constraintName: uk_users_subject_project + + - addForeignKeyConstraint: + baseTableName: users + baseColumnNames: usermetrics_id + referencedTableName: user_metrics + referencedColumnNames: id + constraintName: fk_users_usermetrics + + - createTable: + tableName: attributes_map + columns: + - column: + name: User_id + type: BIGINT + constraints: + nullable: false + - column: + name: attribute_key + type: VARCHAR(255) + - column: + name: attribute_value + type: VARCHAR(255) + + - addForeignKeyConstraint: + baseTableName: attributes_map + baseColumnNames: User_id + referencedTableName: users + referencedColumnNames: id + constraintName: fk_attributes_map_user diff --git a/microservices/user-service/src/main/resources/db/changelog/db.changelog-master.yaml b/microservices/user-service/src/main/resources/db/changelog/db.changelog-master.yaml new file mode 100644 index 00000000..9078f53d --- /dev/null +++ b/microservices/user-service/src/main/resources/db/changelog/db.changelog-master.yaml @@ -0,0 +1,3 @@ +databaseChangeLog: + - includeAll: + path: db/changelog/changes/ diff --git a/microservices/user-service/src/main/resources/user-service.yml b/microservices/user-service/src/main/resources/user-service.yml index 968d66ec..f7f1e773 100644 --- a/microservices/user-service/src/main/resources/user-service.yml +++ b/microservices/user-service/src/main/resources/user-service.yml @@ -6,21 +6,26 @@ server: isJmxEnabled: false db: - # For Development environment, use H2 database. - jdbcDriver: org.h2.Driver - jdbcUrl: jdbc:h2:mem:appserver_user - hibernateDialect: org.hibernate.dialect.H2Dialect - liquibase: - enabled: false + # For Development environment, use H2 database with drop-and-create: + # jdbcDriver: org.h2.Driver + # jdbcUrl: jdbc:h2:mem:appserver_user + # hibernateDialect: org.hibernate.dialect.H2Dialect + # liquibase: + # enabled: false + # additionalProperties: + # jakarta.persistence.schema-generation.database.action: drop-and-create additionalProperties: - jakarta.persistence.schema-generation.database.action: drop-and-create -# hibernate.show_sql: true -# hibernate.format_sql: true -# jdbcDriver: org.postgresql.Driver -# jdbcUrl: jdbc:postgresql://localhost:5432/appserver_user -# hibernateDialect: org.hibernate.dialect.PostgreSQLDialect -# username: radar -# password: radar + hibernate.hbm2ddl.auto: validate + # hibernate.show_sql: true + # hibernate.format_sql: true + jdbcDriver: org.postgresql.Driver + jdbcUrl: jdbc:postgresql://localhost:5432/appserver_user + hibernateDialect: org.hibernate.dialect.PostgreSQLDialect + username: radar + password: radar + liquibase: + enabled: true + changelogs: db/changelog/db.changelog-master.yaml email: enabled: false