ManageIQ::Schema is a database schema and migrations library that provides the SQL schema and database migrations for ManageIQ.
The project solves the problem of maintaining a consistent, version-agnostic database schema across ManageIQ deployments. It decouples schema definition from the core application by housing migrations and schema dumps in a separate repository. The approach uses Rails migrations to define schema changes and includes customizations to the default Rails schema dumper to ensure accurate round-tripping of schema definitions across different Rails versions.
Developers maintaining ManageIQ or building applications that depend on it should adopt this tool. It suits projects that need to validate schema consistency when upgrading Rails versions, as it provides explicit testing procedures to verify that schema dumps and migrations produce identical results across versions at both the Ruby and PostgreSQL levels. The project includes tooling to compare schema outputs using pgAdmin's schema diff functionality, making it particularly valuable when integrating new Rails versions into the ManageIQ ecosystem.
The project maintains a focused development approach centered on schema validation and Rails compatibility. Testing uses a dummy application isolated from ManageIQ core to ensure migrations remain independent of application models or core files. The repository includes detailed procedures for capturing and comparing schema outputs across Rails versions, with explicit expected results for each comparison pair, indicating sustained attention to schema integrity during framework upgrades.