SQLBoiler is a tool to generate a Go ORM tailored to your database schema. It is a "database-first" ORM as opposed to "code-first" (like gorm/gorp). That means you must first create your database schema. Please use something like sql-migrate or some other migration tool to manage this part of the database's life-cycle. While attempting to migrate a legacy Rails database, we realized how much ActiveRecord benefited us in terms of development velocity. Coming over to the Go database/sql package after using ActiveRecord feels extremely repetitive, super long-winded and down-right boring. Being Go veterans we knew the state of ORMs was shaky, and after a quick review we found what our fears confirmed. Most packages out there are code-first, reflect-based and have a very weak story around relationships between models. Work with existing databases: Don't be the tool to define the schema, that's better left to other tools.
Features
- Work with existing databases: Don't be the tool to define the schema, that's better left to other tools
- ActiveRecord-like productivity: Eliminate all sql boilerplate, have relationships as a first-class concept
- Go-like feel: Work with normal structs, call functions, no hyper-magical struct tags, small interfaces
- Go-like performance: Benchmark and optimize the hot-paths, perform like hand-rolled sql.DB code
- Auto-completion provides work-flow efficiency gains
- A system that is easy to debug. Your ORM is tailored to your schema, the code paths should be easy to trace since it's not all buried in reflect