pgroll vs tSQLt
pgroll
pgroll.comtSQLt
tsqlt.orgSide by side
| Figure | pgroll | tSQLt |
|---|---|---|
| Price from | Free | Free |
| Free plan | Yes | Yes |
| Free trial | — | — |
| Open source | Yes | — |
| Windows | Yes | — |
| macOS | Yes | — |
| Linux | Yes | — |
| Self-hosted | Yes | Yes |
| Plans published | 2 | 1 |
| Spec score · Database Testing Tools | 8.5 (#6) | 7.8 (#14) |
| License | The repository is licensed under Apache License 2.0. | The official repository identifies the license as Apache 2.0. |
| Purpose | pgroll is an open-source command-line tool for safe, reversible PostgreSQL schema migrations that keep multiple schema versions available simultaneously. | tSQLt is an open source framework for unit testing SQL Server databases with tests written in T-SQL. |
Plans
In their own words
pgroll
pgroll is an open-source command-line tool for PostgreSQL schema migrations that keeps old and new schema versions available while applications move between them. Its expand/contract workflow lets clients choose a version through PostgreSQL's search_path. The project describes migrations as zero-downtime and says it applies changes without locking the database; it can also backfill columns automatically when needed. For breaking changes, pgroll builds virtual schemas from views over physical tables and uses triggers to carry writes between old and new columns. Active migrations can be rolled back to the previous schema version. It supports PostgreSQL 14 and later, including RDS and Aurora, and is available for Linux, macOS, and Windows or self-hosting. It can convert SQL generated by ORMs, with examples for Alembic, Django, and Drizzle, though manual data migrations and SQL consolidation may be needed. On PostgreSQL 14, its versioned views do not respect row-level security policies, which can make it a poor choice for RLS users on that version. The project is licensed under Apache License 2.0.
tSQLt
tSQLt is an open-source unit testing framework for Microsoft SQL Server. Developers write tests in T-SQL, organize them in schemas, and define shared setup methods there. Tests run automatically inside transactions to remain independent and reduce cleanup work. For isolation, tSQLt can fake tables and views and create stored procedure spies. Assertions include AssertEquals and AssertEqualsTable, while results can be generated as plain text or XML for continuous integration tools. The project says it works with SQL Server editions from SQL Server 2005 Service Pack 2 onward. tSQLt is self-hosted, released under the Apache 2.0 license, and the listed plan costs nothing. Installation requires running PrepareServer.sql once per server with SA permission, then installing the framework in a development database. The quick start explicitly says never to install tSQLt in production. Redgate SQL Test is named as its preferred SSMS plug-in.