4 ms·
Dbmate: https://github.com/amacneil/dbmate https://github.com/amacneil/dbmate I found most database migration tools tried to be too smart (I'm not a fan of aut
by amacneil 5y ago
Dbmate: https://github.com/amacneil/dbmate https://github.com/amacneil/dbmate
I found most database migration tools tried to be too smart (I'm not a fan of automatic migrations), were too tightly integrated with specific languages or frameworks, or didn't support basic developer workflow pleasantries such as dropping and recreating the database.
I created a simple single binary migration tool that runs migrations (sql files), and keeps track of applied migrations in a table (inspired by Active Record migrations). Dbmate works with any language or framework, and generally tries to be useful while staying out of your way.
Comparison against other tools here: https://github.com/amacneil/dbmate#alternatives https://github.com/amacneil/dbmate#alternatives
- void_mint 5y agoCurious about the lack of comparison to https://flywaydb.org/ https://flywaydb.org/ , which I've seen a ton of support for in the past and people seem to really enjoy
- amacneil 5y agoFlyway seems like a startup offering a hosted service, so it might be a strange comparison. But if you are familiar with it and care to submit a PR, I'd accept it!
- asadawadia 5y agoI love Dbmate! Such a great library!
- smileart 5y agoUsed Dbmate in my pet-project. Absolutely love it! Thank you!
- doctor_eval 5y agoI found that I wanted something really specific, and built a tool in Go that lets you write, modify and use plpgsql functions as if they were regular source code files rather than database objects. You can write them as Go packages, import those packages into other Go projects, and write tests - without maintaining migration files for anything other than the tables. Combined with IDEA’s plpgsql language support it’s made me super productive. I’ve used it very successfully in production for a few years and have been curious if anyone else would find it useful enough for me to open it up.
- danielheath 5y agoI definitely want something like that.
- newusertoday 5y agocan you give more details, i am generating golang and js functions corresponding to plpgsql functions in somewhat hacky way. I am curious to know what approach have you taken, is it something similar to this project https://github.com/gchaincl/dotsql https://github.com/gchaincl/dotsql
- doctor_eval 5y agohey sorry i didn't see this earlier. it's not a code generator, as such, it's really just a structured way to write PLPGSQL functions alongside Go code, and have it deployed and upgraded automagically. It would be great to generate Go stubs from the SQL definitions and I don't do that. I'd like something a bit like dotsql but ideally where it creates actual Go funcs out of the SQL function signatures. The bit that I've done so far lets you package up SQL functions into a schema and treat them as a Go package. you can include them in go.mod and the functions are maintained without writing migration scripts. I'm under the pump at the moment but I'll try to write something up about it and maybe ping you on github some time. Sorry i don't have much time at the moment!
- halostatue 5y agoLooks similar to Sqitch (https://sqitch.org https://sqitch.org).
- olingern 5y agodbmate user here. used it for sqlite migrations and it has been a joy to work with!