Consignment API data
This project is part of Transfer Digital Records. It provides tools for working with the consignment database:
- Database migrations
- Scala code generation
Adding a migration script
- Add a sql file to
lambda/src/main/resources/db/migrationwith a prefix of
The name of the migration should use snake_case, e.g. V123__add_date_column_to_series_table, because Flyway expects this format when it generates the migration name.
To run migrations locally, run
Run the following Jenkins jobs:
- TDR Database Migrations Deploy: this builds the migration code and deploys it to the Lambda which will run the migrations
- TDR Database Migrations Run: this runs the latest version of the migrations lambda
Migrations that have been merged to master will be run automatically on the Integration environment and can be run manually on other environments by the
TDR Database Migrations Deploy Jenkins job. The job will:
- Run a lambda which updates the database within that environment.
- Use slick codegen to generate slick files based on the database schema.
- Deploy this code to the S3 release bucket.
The project uses slick-codegen to generate Slick classes based on the database structure
Publish generated code
- Run the
TDR Database Migrations PublishJenkins job. This publishes a new version of the
Using updated schema locally
To use updated schema locally for development, run the following commands:
This will place a snapshot version of the built project jar in the local .ivy cache folder: $HOME/.ivy2/local/uk.gov.nationalarchives/consignment-api-db_2.13/[version number]-SNAPSHOT
Other sbt projects that have this project as a dependency can access the local snapshot version by changing the version number in their build.sbt file, for example:
... other dependencies... "uk.gov.nationalarchives" %% "consignment-api-db" % "[version number]-SNAPSHOT" ... other dependences...