Branching — Testing queries
Create a Neon branch to test queries before running them in production
Complex queries that modify data or alter schemas have the potential to be destructive. It is advisable to test these types of queries before running them in production. On other database systems, testing potentially destructive queries can be time and resource intensive. For example, testing may involve setting up a separate database instance and replicating data. With Neon, you can instantly create a database branch with a full copy-on-write clone of your production data in just a few clicks. When you finish testing, you can remove the branch just as easily.
This guide walks you through creating a branch of your production data, testing a potentially destructive query, and deleting the branch when you are finished.
For the purpose of this guide, let's assume you have a database in Neon with the following table and data:
Create a test branch
- In the Neon Console, select your project.
- Select Branches.
- Click Create branch to open the branch creation dialog.
- Enter a name for the branch. This guide uses the name
my_test_branch
. - Select a parent branch. Select the branch defined as your default branch.
- Under Include data up to, select the Current point in time option to create a branch with the latest available data from the parent branch (the default).
- Click Create new branch to create your branch.
You are directed to the Branches page where you are shown the details for your new branch.
You can also create a test branch using the Neon CLI or Neon API.
Test your query
Navigate to the SQL Editor, select the test branch, and run your query. For example, perhaps you are deleting blog posts from your database for a certain author published before a certain date, and you want to make sure the query only removes the intended records.
DELETE FROM Post
WHERE author_name = 'Alice' AND date_published < '2020-01-01';
Next, inspect the data to ensure the intended records were deleted, while others remained unaffected. This query allows you to quickly see if the number of records matches your expectations:
SELECT COUNT(*) FROM Post;
Before the DELETE
query, there were 5 records. If the query ran correctly, this should now show 4.
Delete the test branch
When you finish testing your query, you can delete the test branch:
- In the Neon Console, select a project.
- Select Branches.
- Select the test branch from the table.
- From the Actions menu on the branch overview page, select Delete.
You can also delete a branch using the Neon CLI or Neon API.
neon branches delete my_test_branch