Dave Green


Stairway to Database Source Control

Stairway to Database Source Control Level 5: Working with Others (Distributed Repository)

This level starts with an overview of how versioning works in Git, a DVCS, and suggests a sensible database project versioning strategy. It then offers some simple, but illustrative, practical examples showing how to share database changes and deal gracefully with any conflicting changes.

You rated this post out of 5. Change rating

2016-05-18

1,464 reads

Stairway to Database Source Control

Stairway to Database Source Control Level 4: Getting a Database into Source Control (Distributed Repository)

Now that we have our database under source control, we will want to share our work with other developers. If we are in a centralized source control system, our changes may be committed straight into the central repository.

When we are working in a distributed system, it means pulling down any changes from other developers, addressing any areas of conflict, and pushing our changes up to allow others to benefit from our work. This allows our changes to be synchronized with the changes other developers have made.

This level is principally about setting up a distributed source control system, namely Git, and how to commit database development changes to a local repository, before pushing them into a remote 'central' repository for sharing with other developers.

The next level will delve a little deeper into Git's versioning mechanisms, and show some examples of how to share database changes during development, and how to deal with conflicting changes.

You rated this post out of 5. Change rating

2016-02-03

2,782 reads

Stairway to Database Source Control

Stairway to Database Source Control Level 3: Working With Others (Centralized Repository)

One of the main purposes of placing a database under source control, alongside the application code, is to allow team collaboration during development projects. The Version Control System (VCS) stores and manages all of the project files, maintaining an audit trail of what changed, and who made the change. Each team member can work on a file, or set of files, and submit their changes to the VCS to make them available to other team members. They can also inspect the VCS to discover recent changes made by other team members.

You rated this post out of 5. Change rating

2015-03-04

4,255 reads

Stairway to Database Source Control

Stairway to Database Source Control Level 2: Getting a Database into Source Control

In this level, we're going to continue the philosophy of learning by example, and get a database into our SVN repository. We will also consider our overall approach to source control for databases, and the manner in which our team will develop these databases, concurrently.

You rated this post out of 5. Change rating

2014-06-11

7,159 reads

Blogs

The Book of Redgate: We Value Teams

By

This value is something that I still hear today: our best work is done...

Troubleshooting TempDB Log Full Errors When SSMS Won’t Connect

By

Have you ever received the dreaded error from SQL Server that the TempDB log...

Accelerating AI with Confidence: Why Microsoft Purview is Key to Responsible Innovation

By

Artificial intelligence is no longer a distant concept. It is here, embedded in the...

Read the latest Blogs

Forums

Planning for tomorrow, today - database migrations

By John Martin

Comments posted to this topic are about the item Planning for tomorrow, today -...

Bottlenecks on SQL Server performance

By runarlan

We have a BI-application that connects to input tables on a SQL Server 2022...

Is there some good routines for updating SQL Server database objects with GitHub

By Rod at work

At work we've been getting better at writing what's known as GitHub Actions (workflows,...

Visit the forum

Question of the Day

The Tightly Linked View

I try to run this code on SQL Server 2022. All the objects exist in the database.

CREATE OR ALTER VIEW OrderShipping
AS
SELECT cl.CityNameID,
       cl.CityName,
       o.OrderID,
       o.Customer,
       o.OrderDate,
       o.CustomerID,
       o.cityId
 FROM dbo.CityList AS cl
 INNER JOIN dbo.[Order] AS o ON o.cityId = cl.CityNameID
GO
CREATE OR ALTER FUNCTION GetShipCityForOrder
(
    @OrderID INT
)
RETURNS VARCHAR(50)
WITH SCHEMABINDING
AS
BEGIN
    DECLARE @city VARCHAR(50);
    SELECT @city = os.CityName
    FROM dbo.OrderShipping AS os
    WHERE os.OrderID = @OrderID;
    RETURN @city;
END;
go
What is the result?

See possible answers