def update_data(): logger.logMsg('Updating data') sgid_sde = r'{}SGID10.sde'.format(HNAS_DATA_FOLDER) hnas_data = HNAS_DATA_FOLDER sgid_fgdb = 'SGID10.gdb' cache_fgdb = 'UtahBaseMap-Data.gdb' local_data = r'C:\Cache\MapData\Temp' local_sgid = os.path.join(local_data, sgid_fgdb) local_cache = os.path.join(local_data, cache_fgdb) errors, changes = update.updateFGDBfromSDE( os.path.join(hnas_data, sgid_fgdb), sgid_sde) if len(errors) > 0: emailer.sendEmail( email_subject + ' Errors', 'Data update schema changes: \n\n{}'.format('\n'.join(errors))) if raw_input('Re-update data? (Y/N): ') == 'Y': update_data() return logger.logMsg('Copying updated data locally') arcpy_helpers.DeleteIfExists([local_sgid, local_cache]) arcpy.Copy_management(os.path.join(hnas_data, sgid_fgdb), local_sgid) arcpy.Copy_management(os.path.join(hnas_data, cache_fgdb), local_cache) logger.logMsg('Data update complete') emailer.sendEmail(email_subject, 'Data update complete. Proceeding with caching...')
def update_data(): logger.logMsg('Updating data') sgid_sde = r'{}SGID10.sde'.format(HNAS_DATA_FOLDER) hnas_data = HNAS_DATA_FOLDER sgid_fgdb = 'SGID10.gdb' cache_fgdb = 'UtahBaseMap-Data.gdb' local_data = r'C:\Cache\MapData\Temp' local_sgid = os.path.join(local_data, sgid_fgdb) local_cache = os.path.join(local_data, cache_fgdb) errors, changes = update.updateFGDBfromSDE(os.path.join(hnas_data, sgid_fgdb), sgid_sde) if len(errors) > 0: emailer.sendEmail(email_subject + ' Errors', 'Data update schema changes: \n\n{}'.format('\n'.join(errors))) if raw_input('Re-update data? (Y/N): ') == 'Y': update_data() return logger.logMsg('Copying updated data locally') arcpy_helpers.DeleteIfExists([local_sgid, local_cache]) arcpy.Copy_management(os.path.join(hnas_data, sgid_fgdb), local_sgid) arcpy.Copy_management(os.path.join(hnas_data, cache_fgdb), local_cache) logger.logMsg('Data update complete') emailer.sendEmail(email_subject, 'Data update complete. Proceeding with caching...')
def test_update_tables(self): testGDB = os.path.join(currentFolder, 'Test.gdb') if arcpy.Exists(testGDB): arcpy.Delete_management(testGDB) arcpy.Copy_management(checkForChangesGDB, testGDB) changes = update.updateFGDBfromSDE(testGDB, updateTestsSDE)[1] self.assertEquals(changes[0], 'PROVIDERS')
def run(self): self.logger.logMsg("Looping through file geodatabases") errors = [] for db in settings.DATABASES: self.archive(db) fgd = r'{}\{}.gdb'.format(settings.DBPATH, db) sde = r'{}\{}.sde'.format('.\database_connections', db) tup = update.updateFGDBfromSDE(fgd, sde, self.logger) errors = errors + tup[0] self.logger.logMsg('compacting geodatabase') arcpy.Compact_management(fgd) if update.wasModifiedToday('Roads', r'{}\{}.gdb'.format(settings.DBPATH, 'SGID10')): rebuild_locators.Runner(self.logger, self.emailer).roads() if update.wasModifiedToday('AddressPoints', r'{}\{}.gdb'.format(settings.DBPATH, 'SGID10')): rebuild_locators.Runner(self.logger, self.emailer).address_points() end_time = time.time() elapsed_time = end_time - self.start_time self.logger.logMsg("total minutes: " + str(elapsed_time / 60)) if len(errors) > 0: errors = '\n\n'.join(errors) errors = re.sub('(\n\n|^)(.*): schema change detected', r'\1\2: schema change detected - force update: http://172.16.17.56/arcgis/rest/services/ForceSchemaUpdate/GPServer/Force%20Schema%20Update/execute?Feature_Class_Name=\2&f=json', errors) txt = "Updated Datasets: \n{}\n\nUpdate Errors:\n{}\n\nLog:\n{}" self.emailer.sendEmail( 'mapserv-data-update: update errors', txt.format("\n".join(update.changes), errors, self.logger.log)) else: txt = "Updated Datasets: \n{}\n\nLog:\n{}" self.emailer.sendEmail( "mapserv-data-update: success", txt.format('\n'.join(update.changes), self.logger.log)) print("done")
def run(self): for db in databases: update.updateFGDBfromSDE(join(local_folder, db + '.gdb'), join('database_connections', db + '.sde'), self.logger)