Overview

A refresh process has three high level steps. These are described in detail in the creating a sandbox resource found on the Alpha/Beta Testers Page

  1. Copy the Production database to the Development server
  2. Run a SQL script to prepare the Production database copy for use on the Development server
  3. Copy the Production "code" to the Development server
    Specifically, we are taking a copy of the IIS wwwroot folder and updating the web.ConnectionStrings.config to point the Development database (the one just copied over from production)

Additional Resources

Here are some additional resources provided by Rock Community members for consideration when drafting a refresh process more specific to your environment.

  1. Shawn Ross offers a concise step-by-step process that builds on the creating a sandbox resource: https://calvary.church/page/914?Item=452
    This resource is frequently pointed to when people in the community ask about how refresh a Development Environment with Production data.
  2. Derek Mangrum offers a unique look at "On-Premise Hosting a Test Environment Using Production Data" you can access with the content subscription. Derek makes use of several PowerShell scripts to automate the process.
  3. Jeff Richmond has shared his sql script for preparing the production database and updating html content, content channel items, lava shortcodes and much more.
  4. Here is a link to my process I created after reviewing the resources above and collaborating with Kelley Langkamp over at KFS. My version is similar to Derek's but geared toward hosting in Azure instead of on-premise.

Additional Tips

  1. Incrementally convert your process from manual steps to something more automated over time. Writing/testing scripts can significantly increase the time you spend completing your first Production to Dev refresh.
  2. If you are already on Azure, consider leveraging Azure Storage to move the wwwroot file from Production to Development environment. In my scripts I use Azure Blob Storage and the Azcopy command in PowerShell to script the transition of this files. Azure Files is another option if you want to map a network drive onto both your Production and Development servers.
  3. Check out VS Code to make working with PowerShell scripts easier