Artur is a senior software engineer at Fresha.
He enjoys DIY and creating stuff. Programming for him is one those things but without creating mess at home. Artur enjoys motorcycling and coffee brewing. He’s a happy husband and dad.
Artur started as Android developer, moved to Ruby and fell in love with Elixir and functional programming.
Have you ever caused downtime of your production due to a bad migration?
Maybe you’ve forgotten to add an index concurrently to your huge table and locked it?
Our applications very often make use of relational databases – and from time to time we need to change their schema. These operations usually take just a few lines of code – but when not used correctly can cause a long and painful downtime of your production.
I’ve created an open source library – excellent_migrations. It’s a static analysis tool for checking the safety of database migrations. It automatically detects potentially dangerous or destructive operations. The tool analyses code by traversing AST (Abstract Syntax Tree) of migration files. It also provides a mechanism to silence certain checks, when you are sure that you know what you’re doing.
In my session I’ll talk about unsafe operations, how the excellent_migrations lib works and why it’s fun to do open source.
GitHub repo: https://github.com/Artur-Sulej/excellent_migrations