A Clojure library for SQL database schema manipulation and migrations with support for multiple databases.
Lobos is a Clojure library for SQL database schema manipulation and migration management. It provides a domain-specific language (DSL) for defining database schemas programmatically and tools to handle schema changes through versioned migrations. The library supports multiple databases including H2, MySQL, PostgreSQL, SQLite, and SQL Server.
Clojure developers who need to manage SQL database schemas programmatically, particularly those building applications that require versioned database migrations and schema analysis capabilities.
Developers choose Lobos for its comprehensive Clojure-native DSL, multi-database support, and seamless integration with Clojure projects. Its composable design allows for custom helper functions, and the built-in schema analyzer provides insights into existing database structures.
A library to create and manipulate SQL database schemas with migrations support
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Provides a comprehensive, functional DSL for programmatic schema definition, seamlessly integrating with Clojure codebases and enabling REPL-driven development as shown in the basic example.
Supports H2, MySQL, PostgreSQL, SQLite, and SQL Server, offering flexibility for projects that use or switch between different SQL backends without changing the core migration logic.
Allows creation of custom helper functions and macros, like the 'tbl' macro in the tutorial, to reduce boilerplate and enforce consistent schema patterns across a project.
Can analyze existing databases to construct abstract schema definitions, useful for introspection, documentation, or generating migrations from live schemas.
The library is still in beta (version 1.0.0-beta3), which may lead to breaking changes, incomplete features, or less community support compared to stable alternatives.
Heavily relies on Clojure's syntax and functional paradigms, making it inaccessible for teams unfamiliar with the language or those preferring simpler, declarative approaches.
Lacks built-in CLI tools or GUI interfaces; migration management is primarily REPL-based, requiring custom scripting for automation and integration into deployment pipelines.
The README is brief and points to external documentation, which may not cover advanced use cases, troubleshooting, or best practices thoroughly.