Select to view content in your preferred language

Branch Versioning on Production Databases

2640
11
Jump to solution
08-13-2025 07:56 AM
NickKoopman
Occasional Contributor

Our organization has been running an environment that has three different SQL Server databases

  1. Editing
  2. Viewing
  3. Field Work

Editing is where we update our core asset information. It's only accessible within our firewalls, and it currently edited with connection files in ArcGIS Pro. It uses traditional versioning. We treat this database as our primary, and have historically limited access to only GIS staff.

Viewing is populated with data from Editing, which is replicated nightly. This database is used to create web services on ArcGIS Server for our viewer apps, which we share across the organization or to the public.

Field Work is also populated with data from Editing, also replicated nightly. But this database also has tables and views that support field operations (inspections, maintenance, etc). 

We have a new directive where we need to allow users to update our core assets in the field. I'm looking into shifting Editing from traditional versioning to branch versioning, and then serving that data through ArcGIS Server/Enterprise for edits. We also see the writing on the wall, that branch versioning is where Esri is focusing future development.

Are there any security or performance issues that I should be aware of before I go down that path? How would I handle replication?

11 Replies
CalvinHarmin
MVP

One thing to consider/prepare for is that if you previously used Python workflows with arcpy geoprocessing tools including UpdateCursor and all the other tools that performed any editing operations on a traditional or non-versioned feature class or table -- those will no longer be able to perform those functions on a branch-versioned object, and you would need to re-write processes with ArcGIS API for Python or some other means. In my testing the ArcGIS for Python API methods may not be as efficient for certain workflows, but I didn't quantify it so I'm not sure if that would be a significant impact. But at least on my end, I have pushed the migration to branch versioning until I have time to be able to rewrite some rather complex automations that rely heavily on arcpy. 

0 Kudos
DavidSolari
MVP Regular Contributor

This is partially correct. You can't use cursors on direct database connections, but you can use them on feature service layers without bringing in the Python API. Obviously there's performance implications with this but it's possible.