Skip to main content

schemadiff: in memory schema analysis, validation, normalization, diffing, and manipulation

H.1301 (Cornil) | Day 2 | 14:50 - 15:20 | Speakers: Shlomi Noach

schemadiff: in memory schema analysis, validation, normalization, diffing, and manipulation
A picture of a devroom at FOSDEM 2024
Open in browser
Get involved in the conversation!Join the chat

Notes

Abstract

schemadiff is a library within the Vitess project, which uses a programmatic approach to analyzing database schemas independently of a MySQL server. schemadiff powers Vitess' own internal schema management as well as the user facing Online DDL logic. In this session we take a deep dive into schemadiff's capabilities, and show how the community can use it to solve very common schema change and schema management tasks and problems. We discuss:

  • Parsing.
  • Per table and per database validations.
  • Normalization.
  • Diffing tables, diffing databases.
  • Schema change conflicts and dependencies.
  • Generating a successful sequential migration route.
  • In-memory schema manipulation.
  • Performance.
  • Extras: INSTANT DDL, Online DDL support, constraint analysis.

schemadiff is part of Vitess, a CNCF project released under the Apache 2 license. We illustrate some real-world scenarios from PlanetScale's (main sponsors of the Vitess project) schema deployment system.

Speakers

Shlomi Noach

Notice: The placeholder video image is licensed under CC BY-SA 4.0. The original image can be found hereChanges made to the image are: Cropped the image to a new ratio, part of the image was cut off.