Redgate has a long history of supporting open source projects and developing free tools that work with open source software.
That support continues today and we're particularly interested in open source projects that contribute to and help the daily working lives of SQL users. Right now, we're providing financial and development backing to four projects that help in everything from code coverage to unit testing.
If you're involved in, or thinking of developing, open source software in the SQL arena, we'd be interested in talking to you, to see what kind of help we could offer. Simply email email@example.com and tell us about it.
In the meantime, if you're looking for free open source software that can help you work a little faster and smarter with SQL, take a look at the tools we currently support.
Flyway is the world's most popular migrations framework for database deployments.
It's easy to adopt, simple to scale across teams and allows developers to manage migrations scripts with confidence, across twenty of the most common database engines.
It is an open-source tool, licensed under Apache License 2.0, that allows you to define the required update operations in an SQL script or as Java code. You can then run the migration from a command line client or automatically as part of your build process or integrated into your Java application.
Find out how you can contribute to Flyway's development.
Find out more about automating your database deployments using migrations.
The database unit testing framework for SQL Server developed by, among others, Sebastian Meine
Database unit testing is an essential part of the development process. Typically, however, you have to write those tests in C# or another unfamiliar language.
tSQLt is the database unit testing framework for Microsoft SQL Server that allows you to implement unit tests with T-SQL in either SSMS or SSDT.
Tests are automatically run within transactions, they can be grouped together within a schema, and the output can be generated in plain text or XML. It also provides the ability to fake tables and views, and create stored procedure spies, allowing you to isolate the code you're testing.
The code coverage tool for T-SQL, SQL Server 2008+, developed by Ed Elliott
Code coverage is a measure used to describe the degree to which the source code of a program is tested by a particular test suite. Using it, you can see how risky changes are to a particular area of code. If you have a high level of code coverage, for example, you can be fairly confident when making changes. With low code coverage, you know in advance to be careful.
SQLCover helps you find out by providing statement-level coverage of SQL Server stored procedures and functions. It was designed to be generic to work with any build server and tests, but includes specific filters to mean that it is well suited to running tSQLt tests using the Redgate DLM Automation Suite.
Find out how to use SQLCover with DLM Automation Suite PowerShell cmdlets.
The Visual Studio Test Adapter for discovering and executing tSQLt tests, developed by Ed Elliott
Test Explorer in Visual Studio lets you run unit tests, group them into categories, filter the test list, and create, save, and run playlists of tests. Rather than running all the tests in a solution, tSQLt Test Adapter can automatically discover tSQLt tests and run them against your unit test database.
tSQLt Test Adapter is also available for use in your favorite build server via the vstest.console.exe tool or, if you have Visual Studio Team Services, the default test task.
utPLSQL is an open-source testing framework for PL/SQL and SQL
It allows for automated testing of:
utPLSQL was originally developed by Steven Feuerstein.
It is currently developed and maintained by a team of passionate developers.
SQLCop is an open source set of tests that help promote code quality by looking for common poor T-SQL coding practices. These tests are based on the tSQLt framework and run within its structure. You can add the SQL Cop tests to your database using SQL Test or by downloading the project and compiling all the tests in your database.
As this is an open source project, you can contribute by enhancing or improving the quality of the existing tests, or adding other coding practices that you want to ensure your developers follow by creating a new test.