Skip to content
GitLab
Projects Groups Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
  • briar briar
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 784
    • Issues 784
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 10
    • Merge requests 10
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • briarbriar
  • briarbriar
  • Issues
  • #1596
Closed
Open
Issue created Jun 19, 2019 by akwizgran@akwizgranOwner

Make migrations idempotent where possible

The database migrations use data definition commands (ALTER TABLE, etc) that H2 commits automatically as soon as they're executed, even though we execute the commands within a transaction. If a crash happens during a migration, the DB may be left in a state where the migration has been partially applied. If the data definition commands aren't idempotent then subsequent attempts to apply the migration will fail, making it impossible to complete the migration and open the DB.

Where possible we should use data definition commands that are idempotent. For example, DELETE COLUMN should be DELETE COLUMN IF EXISTS, CREATE COLUMN should be CREATE COLUMN IF NOT EXISTS, etc.

Assignee
Assign to
Time tracking