A Go Database Migration CLI Tool

I just finished my first real project with Go and so far have really enjoyed this programming language. It’s called “gograte” (go + migrate), its a simple database migration CLI tool. For the longest time I’ve focused mainly on JavaScript/TypeScript and web dev stuff, and I finally decided it's time to learn a new language and level up my programming skills. Go seemed powerful and easy enough to learn, and at this point in my software developer journey I’m much more interested in backend stuff. I want to puke at the thought of having to write react components or design a UI, I’ll leave the frontend code to AI at this point (Gemini is 3 pro is a BEAST).

Many times I've had the problem of wanting to clone an entire sql schema from a remote database to my local db and it's always a pain. I use Datagrip for my database migration and it works great, I just needed an excuse to build this tool. I wanted to have a command to run in the terminal to do it quickly and this was a perfect opportunity to build a Go CLI program. Working on projects like this is the best way to learn in my opinion.

The main idea is there is a "target" and "source" database. The source database is where all table schemas sit, and the target is the database to add these new schemas to. This program features two main commands:

What I like about GO

What I don't like about Go

So far I’m loving Go and plan to work on other projects in the future with it. You can find the source code for this project here