How FlexiGroup uses ReadyRoll - Redgate Software

How FlexiGroup uses ReadyRoll

1. Flexigroup-logo_pmudauFlexiGroup is a diversified financial services group providing point of sale interest free, no interest ever, leasing, vendor programs, interest free cards and other payment solutions to consumers and businesses.

We talk to Damian Haynes, Senior Application Developer at FlexiGroup, about why his team selected ReadyRoll as their database change management tool.

How did you make database changes before you adopted ReadyRoll?

We used to deploy our databases in one of two different ways: either we’d generate scripts manually for a release and placed them in a common folder for a project, or we’d use PowerShell to extract a dacpac from our development database and subsequently generate a sync script for each target environment.

The first method involved executing the scripts by hand whereas the second method was partially automated. But unfortunately it made ‘run once’ scripts, such as transactional data updates, very hard to organise and maintain. This was a problem for us because we often need to orchestrate data changes, such as adding new products to the system, alongside the schema changes.

SQL Server ships with its own set of database development tools in Visual Studio. What made you choose ReadyRoll?

Mainly the ease of use for everyone in our team, the true run-once migration method, and scripting with variables that can be populated by other complimentary tools during deployment, e.g. with Octopus Deploy.

We’ve also just started using the semantic versioning feature of ReadyRoll which allows us to organise our change scripts by release, making it easier to merge branches of our database code.

Who is responsible for writing change scripts in your team?

Everyone! All developers become T-SQL script authors once you show them how easy it is to import table changes and even look-up data. What gets them hooked though is the ‘Just press Start’ approach [in Visual Studio] to synchronizing the database from source control.

Does each developer have their own sandbox, or is a shared (development) database used?

We each have a sandbox as it is necessary to develop solo, then we promote to a development environment which has additional data. Then, later in the development cycle, we merge code from other teams into a separate environment for integration testing.

Do you have a means of populating your tables with test data?

All lookup data is contained within each of the ReadyRoll database projects.

For sample data, we have a separate database project which uses a SQL DataRun pattern I created, involving a set of control tables and stored procedures to orchestrate the ETL process (the control tables prescribe the data run sequence, and the stored procedures contain the data transformation logic).

To populate their own sandbox environment, the developer presses `Start’ to deploy the schema and then executes a stored procedure to kick off the data run. This performs an extract from a separately maintained test environment, which holds a sample set of transactional data.

How do you deploy to your Test and Production environments?

We primarily use Octopus Deploy to handle deployments between all of our lifecycle environments, which includes the deployment of the databases packages that ReadyRoll produces. With the program of work we’ve got on right now, it would be virtually impossible to deliver software on time if we had to deploy our application components by hand.

Tools in this post


Develop and deploy databases in Visual Studio with migration scripts.

Find out more

Share this post.

Share on FacebookShare on Google+Share on LinkedInTweet about this on Twitter

Related posts

Also in Blog

How to document multiple SQL Server databases using SQL Doc and PowerShell

You can use SQL Doc's command-line parameters to automate database documentation, but when you try to automate the process of documenting a group of databases on a server, they sometimes don't give yo...

Also in Database DevOps & DLM

How Redgate helped define a truly automated database deployment process

At the end of 2016, we interviewed Bob Walker, a Lead Application Developer, to find out how he went about setting up automated database deployments using Redgate tools and what lessons he’d learned...

Also about ReadyRoll

Moving from application automation to true DevOps by including the database

The recent State of Database DevOps Report revealed that within two years, 80% of companies will adopt DevOps. That’s an interesting finding in itself, but the report also showed that 75% of compani...