Changeset 7249 for TI01-discovery-Ingest


Ignore:
Timestamp:
28/07/10 12:26:57 (9 years ago)
Author:
sdonegan
Message:

Fixed bug for multiple update of spatial tables and handling of comment chracters in new MEDIN records

Location:
TI01-discovery-Ingest/trunk/v4n_MEDIN/ingestAutomation-upgrade/OAIBatch
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • TI01-discovery-Ingest/trunk/v4n_MEDIN/ingestAutomation-upgrade/OAIBatch/DeleteRecord.py

    r6544 r7249  
    111111            record = RecordToDelete(recordFilename,None) 
    112112            logging.info("Getting discoveryId from database for  %s" %recordFilename)      
    113             dao = PostgresDAO(record, None, None, None, self.pgc)               
     113            dao = PostgresDAO(record, None, None, self.pgc)               
    114114            self.createRecordObject(record,dao,recordFilename) 
    115115             
     
    118118            record = RecordToDelete(None,discoveryID) 
    119119            logging.info("Getting discoveryId from database for  %s" %discoveryID)      
    120             dao = PostgresDAO(record, None, None, None, self.pgc)               
     120            dao = PostgresDAO(record, None, None, self.pgc)               
    121121            self.createRecordObject(record,dao,recordFilename) 
    122122         
     
    125125         
    126126            #delete original record 
    127             try:             
     127            try: 
     128                import pdb 
     129                pdb.set_trace()          
    128130                dao.deleteOriginalRecord() 
    129                 dao._deleteSpatioTemporalData() 
     131                #dao._deleteSpatioTemporalData() 
    130132                 
    131133                #check item deleted (note need to reinitialise the record object!) 
    132                 dao = PostgresDAO(record, self.pgc) 
     134                dao = PostgresDAO(record,  None, None, self.pgc) 
    133135                record = RecordToDelete(recordFilename,None) 
    134136                self.createRecordObject(record,dao,recordFilename) 
  • TI01-discovery-Ingest/trunk/v4n_MEDIN/ingestAutomation-upgrade/OAIBatch/ExtractISO.py

    r7096 r7249  
    184184                                 
    185185                if self.datacentreName == 'None': 
    186                         self.processingMsg = 'No entry for Data Centre name so record not valid and cannot/will not Ingest!' 
     186                        #self.processingMsg = 'No entry for Data Centre name so record not valid and cannot/will not Ingest! (but in this instance will make an exception)' 
     187                         
    187188                        logging.error(self.processingMsg) 
    188                         self.validDoc = False 
    189                  
     189                        #self.validDoc = False 
     190                        self.datacentreName = [['Not Available in the metadata'],[],[]] 
     191                         
    190192                 
    191193                self.keywords = self.getElementVal(self.isoModel.keywords()) 
     
    196198                        logging.warn("No parameter info for record!") 
    197199                        self.parameters_text = '' 
    198                         self.parameters_tsvector = '' 
     200                         
    199201                else:            
    200202                        self.parametersOb = IsoIngestListUtilities(self.keywords,True)                    
    201203                        self.parameters_text = self.parametersOb.getDelimitedStringFromList(self.parametersOb.listVals) 
    202                         self.parameters_tsvector = self.parameters_text 
     204                         
     205                #fix for some P021 vals that have a quote mark in - escape it.. 
     206                self.parameters_text = self.parameters_text.replace("'","\\'") 
     207                self.parameters_tsvector = self.parameters_text 
    203208                 
    204209                 
  • TI01-discovery-Ingest/trunk/v4n_MEDIN/ingestAutomation-upgrade/OAIBatch/PostgresDAO.py

    r7052 r7249  
    244244        newColVal = self._record.escapeSpecialCharacters(newColVal) 
    245245         
     246         
    246247        #build the sql query 
    247248        #i.e. update original_document set original_format_version = 'dooby' where original_document_filename = 'dooby.ac.uk.shgfhf.xml' 
     
    260261                sqlCmd = sqlCmd.replace("None", "null") 
    261262                 
     263                #sort out escape chars from previous catches (i.e. parameters) 
     264                sqlCmd = sqlCmd.replace("\\'","\'") 
     265                 
     266                 
    262267                self.pgc.runSQLCommand(sqlCmd) 
    263268                 
     
    294299            logging.info("Clearing out existing data for record - to allow clean update") 
    295300             
     301            self._deleteSpatioTemporalData() 
    296302            self._insertSpatioTemporalData() 
    297303            result = True 
     
    359365        delete entries from there 
    360366        ''' 
    361         logging.info("Deleting existing spatiotemporal data for record") 
    362         sqlCmd = "DELETE FROM SPATIAL_TEMPORAL_DATA WHERE original_document_id = " + \ 
    363             str(self._record.db_id) + ";"       
    364  
    365         self.pgc.runSQLCommand(sqlCmd) 
    366         logging.info("Spatiotemporal data deleted successfully") 
     367        logging.info("Deleting existing spatial data for record") 
     368         
     369        try: 
     370                sqlCmd = "DELETE FROM spatial_data WHERE original_document_id = " + str(self._record.db_id) + ";" 
     371                 
     372                self.pgc.runSQLCommand(sqlCmd) 
     373                 
     374                logging.info("Spatial data for %s deleted ok" %self._record.db_id) 
     375             
     376        except: 
     377                logging.error("Could not delete spatial record %s" %self._record.db_id) 
     378         
     379         
     380        logging.info("Deleting existing temporal data for record") 
     381         
     382        try: 
     383                sqlCmd = "DELETE FROM temporal_data WHERE original_document_id = " + str(self._record.db_id) + ";" 
     384                 
     385                self.pgc.runSQLCommand(sqlCmd) 
     386                 
     387                logging.info("temporal data for %s deleted ok" %self._record.db_id) 
     388             
     389        except: 
     390                logging.error("Could not delete temporal record %s" %self._record.db_id) 
     391         
     392        logging.info("Spatio - temporal data deleted successfully") 
    367393         
    368394 
     
    402428        # Work out the relationship between the spatial and temporal data and handle appropriately 
    403429         
    404          
     430        
    405431        TimeRange = self._record.parseTemporalInfo(self._record.datasetTemporalData) 
    406432        SpatialCoords = self._record.parseSpatialInfo(self._record.datasetSpatialData) 
     
    455481            self._record.dataset_lastEdit + "', '" + self._record.datasetStartNom + "', '" + self._record.datasetEndNom + "');" 
    456482         
    457         
     483         
    458484        #sort out any nulls.. 
    459485        sqlCmd = sqlCmd.replace("'NULL'","NULL") 
Note: See TracChangeset for help on using the changeset viewer.