upscheme
Upscheme is a PHP package that simplifies database schema migrations and updates across MySQL, PostgreSQL, SQLite, and SQL Server. It abstracts complexity away from Doctrine DBAL with a cleaner API and handles upgrades from any prior schema state without rollback support.
Key facts
Objective fields from the source. Values we can't verify are shown as “Unknown” rather than guessed.
| Field | Value |
|---|---|
| Repository | aimeos/upscheme |
| Owner | aimeos |
| Primary language | PHP |
| License | LGPL-3.0 — OSI-approved |
| Stars | 2.7k |
| Forks | 5 |
| Open issues | 2 |
| Latest release | Unknown |
| Last updated | 2026-07-05 |
| Source | https://github.com/aimeos/upscheme |
What upscheme is
Built on Doctrine DBAL, Upscheme provides a fluent PHP API for defining tables, columns, indexes, foreign keys, and sequences. It executes schema diffs automatically and supports dependency ordering between migrations via before()/after() methods, storing execution state in the actual schema rather than a tracking table.
Get the upscheme source
Clone the repository and explore it locally.
git clone https://github.com/aimeos/upscheme.gitcd upscheme# follow the project's README for install & configurationNeed it deployed, integrated, or customized instead? DEV.co ships production installs.
Best use cases
Implementation considerations
- Migrations are executed against a live database connection; ensure backups and staging environment validation before production runs.
- Schema generation from existing databases (mentioned in README) requires review of generated migration accuracy, particularly for platform-specific features.
- Doctrine DBAL connection configuration must match your environment (driver, host, credentials); document these secrets securely (env vars, vaults).
- Test migrations in isolated environments to confirm idempotent behavior and verify no unintended schema changes occur on re-runs.
- Review Doctrine DBAL version compatibility if upgrading; breaking changes in DBAL may affect Upscheme behavior.
When to avoid it — and what to weigh
- Rollback/downgrade requirements — Upscheme intentionally omits down() methods to prevent implicit data loss. If your application requires rollback capability, consider Doctrine Migrations or Flyway.
- NoSQL or non-relational databases — Upscheme is RDBMS-only via Doctrine DBAL. MongoDB, DynamoDB, and other non-relational stores require different tooling.
- Complex stored procedures or views — Upscheme focuses on table, column, index, and constraint definitions. Management of stored procedures, triggers, views, or other database objects is not a documented feature.
- Non-PHP applications — Upscheme is a PHP-only package. Java, Node.js, Python, or Go applications will need language-native alternatives.
License & commercial use
Upscheme is licensed under LGPL-3.0 (GNU Lesser General Public License v3.0). This is a copyleft license requiring derivative works and modifications to be released under the same license, but allows proprietary applications to link to unmodified LGPL libraries.
LGPL-3.0 permits commercial use of unmodified Upscheme in proprietary applications. However, if you modify Upscheme's source code, those modifications must be released under LGPL-3.0. Consult your legal team to confirm compliance with your distribution model and IP strategy.
DEV.co evaluation signals
Editorial assessment — not user reviews. Directional, with an explicit confidence level.
| Signal | Assessment |
|---|---|
| Maintenance | Active |
| Documentation | Strong |
| License clarity | Clear |
| Deployment complexity | Low |
| DEV.co fit | Strong |
| Assessment confidence | High |
Database credentials must be stored securely (environment variables, secrets manager) and never committed to version control. SQL injection is mitigated by Doctrine DBAL's parameterized queries, but custom SQL execution (executeStatement()) is caller-responsible. Review migration scripts from untrusted sources before execution; migrations have direct database write access.
Alternatives to consider
Doctrine Migrations
Native Doctrine project with rollback support (down() methods) and time-based migration ordering. Better if you require downgrade capability and tight Doctrine ORM integration, but less flexible for third-party extension dependencies.
Laravel Migrations
Laravel-native migration system with similar fluent API and rollback support. Ideal if using Laravel; Upscheme is agnostic and works outside Laravel.
Flyway
Language-agnostic, database-agnostic migration tool with strong version control semantics and enterprise support. Better for polyglot teams and complex schema governance, but requires Java and separate tooling outside your PHP codebase.
Build on upscheme with DEV.co software developers
Explore Upscheme's fluent API and dependency-aware migration system. Start with the GitHub repository and documentation to understand how it handles multi-database deployments and third-party extension coordination.
Talk to DEV.coRelated open-source tools
Surfaced by semantic similarity across the DEV.co open-source index.
Related on DEV.co
Explore the category and the services that help you build with it.
upscheme FAQ
Does Upscheme support rollbacks/downgrades?
Can I use Upscheme with Laravel or Symfony?
How does Upscheme track which migrations have run?
What databases does Upscheme support?
Software development & web development with DEV.co
DEV.co is a software development agency delivering custom software development services to companies building on open source. Our software developers and web developers design, integrate, and ship production systems — spanning web development, APIs, AI, data, and cloud. If upscheme is part of your open-source databases roadmap, our team can implement, customize, migrate, and maintain it.
Ready to simplify your database migrations?
Explore Upscheme's fluent API and dependency-aware migration system. Start with the GitHub repository and documentation to understand how it handles multi-database deployments and third-party extension coordination.