Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Databasemigrering for Skribenten #1216

Open
wants to merge 8 commits into
base: main
Choose a base branch
from
Open

Conversation

madsop-nav
Copy link
Contributor

Bruker Flyway.

I nyaste Exposed-patchversjon (0.58.0) er metoden vi brukte for å halde databasen oppdatert (SchemaUtils.createMissingTablesAndColumns) deprecated, med kommentaren

"Execution of this function might lead to unpredictable state in the database if a failure occurs at any point. " +
"To prevent this, please use MigrationUtils.statementsRequiredForDatabaseMigration with a third-party migration tool (e.g., Flyway).",

MigrationUtils.statementsRequiredForDatabaseMigration returnerte lokalt kun CREATE SEQUENCE- og DROP SEQUENCE-kall. Det fins også ein metode MigrationUtils.generateMigrationScript som kan generere opp alt til filer, som returnerte fleire rader, men dette kjens knotete å jobbe med. I tillegg, og viktigare, er at å basere seg på Exposed si auto-oppdaging av endringar kjens sårbart og ustabilt, når den referte metoden ikkje funkar heilt, så vi må basere oss på workarounds, og ikkje noko eg er komfortabel med å basere oss på.

Dermed trur eg det er betre å bruke Flyway utan om og men. Det er velprøvd, etablert og stabilt. Som ein konsekvens gjer endringar i databasestrukturen at vi treng Flyway-migreringsskript, men her har vi ein ganske liten database med høgst sannsynleg små skript.

Endringar i data, viss det skulle bli behov for det, kan gjerast med akkurat tilsvarande Flyway-skript.

Har tatt ut DDL frå databasen i dev-gcp, og samanlikna med den som er i baseline-skriptet no, og det blir identisk. I praksis vil ingen av linjene i skriptet slå til under køyring, fordi det er tabellar som allereie fins, og if not exists på alt. Men dette vil gjera at testane startar med samme database-grunnlag som prodkoden, utan noko om og men.

@madsop-nav madsop-nav requested review from hanneanes, paomoo and a team as code owners January 27, 2025 10:21
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant