SORMAS-Foundation / SORMAS-Project

SORMAS (Surveillance, Outbreak Response Management and Analysis System) is an early warning and management system to fight the spread of infectious diseases.
https://sormas.org
GNU General Public License v3.0
293 stars 143 forks source link

Release Management > Generate and publish database ER diagram with every release #5585

Open Candice-Louw opened 3 years ago

Candice-Louw commented 3 years ago

Problem Description

SORMAS administrators are dependent on viewing the SORMAS database structure after each release in order to correctly interpret data received from the application and export it to other applications (MED export for CH, for example) after a database structural change has happened.

Proposed Solution

Generate a new ER Diagram of the database structure of each release and publish it with the release notes on GitHub (https://github.com/hzi-braunschweig/SORMAS-Project/releases) as a direct download or asset of the release. Please incorporate this into the release process going forward for every version.

Possible Alternatives

Alternative suggestions on locations where to publish the diagram (for example on the GitHub Wiki? Elsewhere?) after each release, are most welcome.

Additional Information

Acceptance criteria - ER Diagram:

Current solution: Generating a SchemaSpy scheme: https://github.com/hzi-braunschweig/SORMAS-Glossary#schemaspy (preferred solution) Netzlink solution: PNG image

Candice-Louw commented 3 years ago

@VitaliHZI - please add any additional acceptance criteria that I may have missed.

VitaliHZI commented 3 years ago

@Candice-Louw for me it looks fine.

Candice-Louw commented 3 years ago

@Jbartsch - please feel free to add additional requirements from your side. :)

JonasCir commented 2 years ago

Ok I think we can do this as an automated step in our release:

  1. Create a dedicated action and trigger it on a GitHub release
  2. ~Take the SORMAS artifacts and deploy it into a container (like we do it in the Testbed)~ We can just use sormas_schema.sql in apply it to postgres container. No need to spin up a complete SORMAS isntance. This is much more lightweight.
  3. Run schema-spy
  4. Upload the result as release artifact or deploy to Github pages. Alternative, GitHub has some scratch storage space accessible from the CI which gets deleted after 90 days.
Candice-Louw commented 2 years ago

@MallerBeach - please see if this would be a solution going forward and if you have any additional requirements to add.

MallerBeach commented 2 years ago

@Candice-Louw thanks for your proposed solution. I would appreciate it.