Workflow
Deploying New DB from TEST to PROD
- Create same name copy of DB onto PROD
- Link that DB with the working folder you've been working out of
Get Latest
- Apply changes
- If there are changes on the remote Repository you can pull those too to apply those changes as well
Every Day Workflow
- This assumes all setup and connection work has been done for redgate work
- The following examples assume you're performing all this work on 1 SQL Server:
TEST
and that downstream, migration scripts will be applied to push those changes automatically onto the PROD
server without human intervention.
Getting Started and Setup
- Main repository is Repo @
PROD
- They pull the repo and branch down to local machine
- People make their own branch off of
PROD
that will contains the changes they want for specific work
- they are now up to date and ready to work
- Cloning the database you want to work in
- Open Sql Compare
- Select Source Server and Database
- Select Target Server and in the database selection dropdown type the name of your new DEV copy of the database
- The new empty database naming convention being DATABASE_BSJ_DEV
- the database name in all caps, followed by the developers initials, and ended with DEV so people know its someones development copy
- When the name is ready click the
Create
link below the dropdown
- Continue through the Sql Compare menus and no need to save or backup the migration scripts
- After copying of the database is complete you're ready to begin work if changes are only schema related
- Right click that new DB and
Link with source control
Link with my source control system
- Select the folder location of the database from within the repository
Get Latest
if applicable
Apply Changes
if applicable
- Developer is now free to make changes to schema, objects, etc inside their test database
- If data is also required within the dev copy from the source database then open Data Compare
- Select Source Server and Database
- Select Target Server and in the database selection dropdown type the name of your new DEV copy of the database you made prior
- No need to save the migration scripts and run everything within the Data Compare tool for deployment
- Select the data to copy across databases
Deploy
- Now your schema and data all match across the servers and databases
- Right click that new DB and
Link with source control
Link with my source control system
- Select the folder location of the database from within the repository
- Select the folder location of the database from within the repository
Get Latest
if applicable
Apply Changes
if applicable
- Developer is now free to make changes to schema, objects, etc inside their test database
Getting your change into the Pull Request process
- Make your changes, New UDF, new USP, modify existing items, make new tables, alter other tables, etc.
- When ready, or incrementally throughout the process add your changes to your branch via commits
- when you are ready to enter the PR process push your branch to the remote repository
- open pull request of your branch into the master branch
- Normal PR process occurs here
- Once PR is merged then at that point CI/CD pipelines should take over to build, test, and deploy the changes to the
PROD
server with no human intervention.
- IF NO AUTOMATED PROCESS YET PROCEED TO SECTION BELOW
Manual implementation of new changes in the absence of a CI/CD pipeline
- Open Sql Change Automation
- Pick your source and target for changes
- Based on this proposed workflow your source would be the "master" copy of the Database on the
TEST
server
- Based on this proposed workflow your target would be the same Database on the
PROD
server
- Select desired changes to be implemented
- Click
Deploy
to generate a migration script to implement changes without modification to the repository code
- If the individual cannot run the code then pass it to someone who can as a final deliverable artifact to be executed and discarded