
Open Source
Rails Gem and Schema Upgrade Path: Decidim v0.27 to v0.28
As a team dedicated to maintaining a robust participatory democracy platform, we recently undertook the significant task of upgrading Decidim from version 0.27 to 0.28. This upgrade, which took approximately six months to complete, involved major breaking changes and required meticulous planning and execution. This case study provides a firsthand account of the challenges we encountered and the solutions we implemented to ensure a successful transition.
Project Overview
PearlThoughts undertook the upgrade of Decidim, an open source participatory democracy platform, from version 0.27 to 0.28 over a six-month period involving major breaking changes. By systematically resolving dependency conflicts, migrating configuration settings, executing database schema changes with rollback planning, and running comprehensive testing across unit, integration, and user acceptance levels, the team delivered a successful upgrade with zero data loss, full feature parity, and access to the latest security patches and platform improvements.
Why This Upgrade Was Complex
Decidim v0.28 introduced breaking changes across multiple layers simultaneously, gem dependencies, Rails configuration initializers, database schema structure, and asset compilation. Each layer required its own investigation, validation strategy, and rollback plan before touching the next. A misstep at any stage risked corrupting participatory data belonging to thousands of civic users.
Dependency Resolution & Configuration Migration
The upgrade began with a full audit of all gem dependencies against Decidim v0.28's requirements. Conflicts were resolved in isolated environments to avoid cascading failures. Configuration changes in config/initializers/decidim.rb were reviewed setting by setting, with backup configurations maintained and each change validated in staging before being applied to production.
Database Migration with Rollback Planning
Database schema migrations were planned, scripted, and tested independently against a copy of the production database before any changes were made to the live system. Rollback scripts were prepared for every migration step. Post-migration data integrity checks confirmed that all participatory content (proposals, votes, comments, and user records) was preserved without corruption.
Asset Compilation & Comprehensive Testing
Updated JavaScript and CSS assets were compiled with full cache clearing to prevent conflicts with precompiled legacy assets. Cross-browser validation confirmed consistent rendering across all supported environments. Unit tests, integration tests, and full user acceptance testing validated platform stability before the production deployment was approved, resulting in zero reported regressions post-launch.
Client Objectives
The engagement was guided by clear objectives that defined success for business leadership and delivery teams.
Upgrade to Latest Version
Migrate the participatory democracy platform from Decidim v0.27 to v0.28, gaining access to the latest features, security patches, and improvements.
Preserve Data Integrity
Execute database migrations without data loss or corruption, maintaining backward compatibility with existing data structures and user content.
Ensure Platform Stability
Validate all user workflows, module performance, and UI changes through comprehensive testing before production deployment.
The challenge
Complex constraints hindering growth
Dependency Conflicts
Updating Decidim to v0.28 required careful management of gem dependencies, resolving conflicts with other gems, and ensuring compatibility with specific Ruby and Rails versions.
Configuration Breaking Changes
Decidim introduced several configuration changes between versions, requiring thorough review and migration of existing settings in config/initializers/decidim.rb.
Database Schema Migration
Updating the database schema with custom deployment-specific adjustments required careful validation and rollback planning to ensure data integrity.
Asset Compilation Issues
Compiling and deploying updated JavaScript and CSS assets required validation that precompiled assets did not conflict with existing ones across different browsers.

The solution
Structured Upgrade Strategy
A methodical approach to navigating major breaking changes in an open source platform
Dependency Resolution
Reviewed and adjusted all gem dependencies to align with Decidim v0.28 requirements, testing compatibility in isolated environments and resolving conflicts systematically.
- Ruby Gems
- Bundler
- Compatibility Testing
Configuration Migration
Conducted a comprehensive review of configuration changes, created backup configurations, and validated each setting in staging environments before applying to production.
- Config Migration
- Staging Validation
- Backup Strategy
Database Migration & Validation
Planned and executed database schema migrations with backup databases, tested migration scripts in isolation, and validated data integrity post-migration.
- Rails Migrations
- Data Integrity
- Rollback Planning
Asset Compilation & Deployment
Implemented a rigorous asset compilation process with cache clearing, cross-browser testing, and staged deployment to ensure seamless user experience.
- Asset Pipeline
- Cross-Browser Testing
- Staged Rollout
Comprehensive Testing
Executed unit tests, integration tests, and user acceptance testing to validate platform stability, addressing performance regressions and unexpected UI changes.
- Unit Testing
- Integration Testing
- UAT
Technologies Implemented
- Ruby on Rails
- Decidim
- PostgreSQL
- Rails Asset Pipeline
- 6 mo
- Upgrade Duration
- 0
- Data Loss Incidents
- 5
- Major Challenge Areas Resolved
- 100%
- Feature Parity Maintained
Business impact
Upgrade Impact
Successfully navigating a major open source platform upgrade with zero data loss
Cost Management
- Incremental rollout
- Minimized risk and rework costs
- Community resources
- Leveraged open source support channels
Platform Improvements
- Latest security patches
- v0.28 security updates applied
- New platform features
- Access to latest Decidim capabilities
Community Outcomes
- Zero data loss
- All participatory data preserved
- Full feature parity
- All existing workflows maintained
How we drive results
Turning Strategy into Measurable Business Impact
Our case studies reflect a consistent delivery model focused on outcomes, helping organizations modernize technology, reduce risk, and accelerate growth through practical, scalable solutions.
Outcome-Driven Strategy
Every engagement starts with clear business objectives, success metrics, and a roadmap aligned to real operational and financial outcomes.
Proven Execution Model
We apply proven frameworks, agile delivery, and industry best practices to execute complex initiatives with speed, quality, and predictability.
Secure & Scalable Delivery
Our solutions are built with security, compliance, and scalability at the core, ensuring long-term resilience and sustainable growth.
Ready to Transform Your Platform Upgrade?
Navigate complex open source platform upgrades with a structured strategy that preserves data integrity and minimizes risk.
Plan Your Upgrade