[GIS] Update SDE Feature Class from Shapefile

arcgis-10.1enterprise-geodatabase

I work for a department that get's a regular City Council District Shapefile showing the boundaries of each Councilors District. In our SDE we have a Council_District table with an exact duplicate of the previous City Council District Shapefile.

In SDE we have added other fields, links to websites for each councilor, etc. We utilize Flex Maps to make these maps public.

Everytime a new updated shapefile comes out, we copy over the Shapefile and write-over the SDE version with the new data. Then we have to re-create the added fields and their data.

This requires that we shut down every web map using this file which can disrupt both in-house and external users and is not efficient at all.

We are currently running version 9 servers, we will be updating to 10.1 in January. We will NOT be updating to 10.2 (yet!) due to data issues from our data providers.

Question(s)

Is there any way to just update the SDE from the Shapefile to avoid thisor do we always have to shut down webmap services?

Best Answer

Even though your shapefiles and SDE feature classes might have different schema, you can still use the Truncate Table GP tool (which will wipe out all rows but preserve the feature class and the schema, including data permissions) and then Append GP tool which will let you transfer the data between the shapefiles and the SDE feature classes without making any schema changes. Just use the NO_TEST option to disregard any potential schema differences between the source and the target. In case you will you have some mismatch between the fields, they will be just ignored.

This workflow is the best in my experience and I have seen many people doing this and this is also recommended by Esri. In this case, you don't have to stop any GIS services currently using the feature classes in your SDE geodatabase because you don't perform any schema changes.

However, if this is not applicable for your workflow directly, you might consider first joining some fields and match their names to make running the Append GP tool more effective. ModelBuilder or Python would be useful for automating this process if you have multiple datasets to iterate through and this process will occur often in the future.

PS. Just in case it might be relevant for you, map services since 10.0 have an option called Lock Database Schema which when disabled will let you update the schema of the underlying service data. However, users currently working with the service may experience unexpected behaviour while you update the schema of the data, so consider doing this only when the services are in idle state.

Related Question