In this guide we will create an initial schema on a new database called people on our production branch. We'll then create a development branch called feature/address, following one possible convention for naming feature branches. After making schema changes on feature/address, we'll use the Schema Diff tool on the Branches page to get a side-by-side, GitHub-style visual comparison between the feature/address development branch and production.
Before you start
To complete this tutorial, you'll need:
- 
A Neon account. Sign up here. 
- 
To interact with your Neon database from the command line: 
- Create the Initial Schema- First, create a new database called - peopleon the- productionbranch and add some sample data to it.- 
Create the database. In the Neon Console, go to Databases → New Database. Make sure your productionbranch is selected, then create the new database calledpeople.
- 
Add the schema. Go to the SQL Editor, enter the following SQL statement and click Run to apply. CREATE TABLE person ( id SERIAL PRIMARY KEY, name TEXT NOT NULL, email TEXT UNIQUE NOT NULL );
 
- 
- Create a development branch- Create a new development branch off of - production. This branch will be an exact, isolated copy of- production.- For the purposes of this tutorial, name the branch - feature/address, which could work as a good convention for creating isolated branches for working on specific features.- 
Create the development branch On the Branches page, click Create Branch, making sure of the following: - Select productionas the default branch.
- Name the branch feature/address.
 
- Select 
- 
Verify the schema on your new branch From the SQL Editor, use the meta-command \d personto inspect the schema of thepersontable. Make sure that thepeopledatabase on the branchfeature/addressis selected. 
 
- 
- Update schema on a dev branch- Let's introduce some differences between the two branches. Add a new table to store addresses on the - feature/addressbranch.- In the SQL Editor, make sure you select - feature/addressas the branch and- peopleas the database.- Enter this SQL statement to create a new - addresstable.- CREATE TABLE address ( id SERIAL PRIMARY KEY, person_id INTEGER NOT NULL, street TEXT NOT NULL, city TEXT NOT NULL, state TEXT NOT NULL, zip_code TEXT NOT NULL, FOREIGN KEY (person_id) REFERENCES person(id) );
- View the schema differences- Now that you have some differences between your branches, you can view the schema differences. - 
Click on feature/addressto open the detailed view, then click Schema diff. 
- 
Make sure you select peopleas the database and then click Compare. 
 - You will see the schema differences between - feature/addressand its parent- production, including the new address table that we added to the- feature/addressbranch.- You can also launch Schema Diff from the Restore page, usually as part of verifying schemas before you restore a branch to its own or another branch's history. See Instant restore for more info. 
-