My schema migration tool

Hello everyone! I’m brand new to the forum, nice to meet you all. I am a developer from California and I just wanted to share a project that I worked on for a few months and I never got to share it with anyone, hopefully it’ll be useful to someone.

Its called gsmt and it stands for Go Schema Migration Tool!

Here’s the repo: GitHub - deahtstroke/gsmt: Go embedded schema migration tool for SQL databases

I built it because at my previous job when I was writing in Java (Oh no), I came across this tool called Flyway and I picked up an interest on how schema changes could be recorded and automated in big distributed systems. So I challenged myself and I made my own small version in Go that’s embedded right into the very code that we write as Gopher :smile:.

I also had a small need for this because I was working on another project which is a web-server that talks to a SQL database and I wanted to automatically record schema changes as well. I’ve also had time to think about drawbacks about making my project a library instead of a CLI tool, which is that rollbacks are impossible to manage when the code is this embedded into a project.

All-in-all, let me know what you think or if you find it useful, and since I made it open source please don’t hesitate to open issues or have a discussion about it. Again, nice to meet you everyone :slight_smile:

1 Like