Hello,
I would like to know if there is geoprocessing script or another way to crawl through a directory and automatically compress any File Geodabases within the subfolder. This would save me the time of needing to manually search for all of the Geodatabases in directory.
Thanks!
P.S. I did come across this script, but it appears to apply towards SQL databases and not File Geodabases. https://community.esri.com/t5/data-management-documents/compress-geodatabase-tool/ta-p/908944
Solved! Go to Solution.
It would not be a tough script to write; psuedo code might like look like this:
import arcpy
arcpy.env.workpace = #directory of geodatabases
fgdbList = arcpy.ListWorkspaces("*", "FileGDB")
for fgdb in fgdbList:
arcpy.CompressFileGeodatabaseData_management(fgdb)
The question I have though is what is the purpose of compressing a file geodatabase on a regular basis?
Maybe this could help you?
Not tested but could work?
It's from here: "https://gis.stackexchange.com/questions/129454/how-to-compact-geodatabases-in-multiple-directories-u..."
import arcpy, os
from arcpy import env
arcpy.env.workspace = r"C:\"
for path, dirs, files in os.walk(arcpy.env.workspace):
for dir in dirs:
if ".gdb" in dir:
workspace = os.path.join(path, dir)
arcpy.Compact_management(workspace)
This and Joe's code worked.
Please note that there is a difference between arcpy.Compact_management(workspace), and arcpy.CompressFileGeodatabaseData_management(workspace). The latter of which will zip up the files.
Thank You!
It would not be a tough script to write; psuedo code might like look like this:
import arcpy
arcpy.env.workpace = #directory of geodatabases
fgdbList = arcpy.ListWorkspaces("*", "FileGDB")
for fgdb in fgdbList:
arcpy.CompressFileGeodatabaseData_management(fgdb)
The question I have though is what is the purpose of compressing a file geodatabase on a regular basis?
I'm pretty sure I've never compressed a fgdb. when I read about it in help page, I got the impression that it's a one and done operation. Compressing an Egdb is an ongoing maintenance operation and I've written and executed scripts for those.
Mark - I think what you're looking for is Compact (Data Management) to reduce file size on disk. This keeps the contents still editable whereas Compress File Geodatabase makes the contents read-only.
From the compact help page:
swap out the following in my code:
#replace:
arcpy.CompressFileGeodatabaseData_management(fgdb)
#with
arcpy.Compact_management(fgdb)
That should do the trick for you....