A collection of gems that extend ActiveRecord with automatic behaviors and advanced database features.
SchemaPlus is a family of Ruby gems that extend ActiveRecord with automatic behaviors and advanced database features. It automates tasks like foreign key creation, validation generation from constraints, and association definitions, while adding support for PostgreSQL-specific features and database views. The project helps Rails developers write more concise and maintainable database schemas and models.
Ruby on Rails developers working with ActiveRecord who want to reduce boilerplate in migrations and models, and those needing advanced database features like PostgreSQL enums, deferrable foreign keys, or multi-schema support.
Developers choose SchemaPlus because it enforces DRY principles by automating repetitive tasks based on database schema, provides a modular set of gems for specific needs, and extends ActiveRecord with production-ready database features not available in core Rails.
SchemaPlus provides a collection of enhancements and extensions to ActiveRecord
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Automatically creates foreign key constraints and model validations from database associations and constraints, significantly reducing manual migration and model code as highlighted in the key features.
Adds support for PostgreSQL-specific features like enums, deferrable foreign keys, and expression indexes, extending ActiveRecord beyond core Rails capabilities for complex database needs.
Offers a family of gems that can be used individually, allowing developers to pick only the enhancements they need while enforcing DRY principles through convention over configuration.
Enables creating and dropping database views directly within ActiveRecord migrations, a feature not natively supported in Rails, as mentioned in the extended migration syntax.
The main schema_plus gem is no longer updated as of 2022, forcing users to manage multiple individual gems, which complicates dependency management and increases setup overhead.
Tested only with ActiveRecord >= 4.2 and Ruby >= 2.1, so support for newer Rails versions is uncertain, and deprecation warnings indicate potential breaking changes as ActiveRecord evolves.
With over a dozen separate gems, integrating full features requires installing and configuring multiple packages, which can be error-prone and less intuitive than a monolithic solution.