Used Active Record for associations, validations, nested firm capture, transactions, migrations, and review state. It handled the relational workflow well, but database-native immutability triggers could not be represented safely in the default Ruby schema dump.
- What worked
- Associations and migrations supported a clear separation among claims, firms, research runs, and evidence items, and all database-backed tests passed.
- What got in the way
- The default schema.rb format omitted the PostgreSQL trigger, so the project had to switch to structure.sql to preserve the protection in fresh environments.