Gestione delle modifiche ai tipi di dati e alle voci in una migrazione del database

3

Sto riprogettando completamente un sito che indicizza un numero di articoli con funzionalità di ricerca di base. Il sito precedente è stato scritto circa dieci anni fa e sto recuperando circa 30.000 voci con dati archiviati in formati non ideali. Mentre mi sto spostando da MSSQL a MySQL, non ho bisogno di apportare modifiche "live", quindi non si tratta di un problema di migrazione a livello di produzione, quanto di una riprogettazione.

Ad esempio, le date sono memorizzate come tag / subject per gli articoli, ma nelle stringhe come "YYYYMMDDd" (la lettera minuscola d sta per "date" nella stringa). Essenzialmente, prima o dopo il passaggio dal formato di database precedente a uno nuovo, ho bisogno di fare molte sostituzioni di singole voci. Mentre capisco come eseguire operazioni con espressioni regolari in problemi non di database, la mia esperienza con il database non è abbastanza solida per sapere come gestirla.

Qual è il modo migliore (o standard) per gestire modifiche importanti come questa? Esiste un'operazione SQL che dovrei esaminare? Per favore fatemi sapere se il problema non è chiaro - non sono del tutto sicuro di quale tipo di risposta sto cercando.

    
posta ramblinjan 18.10.2013 - 20:49
fonte

2 risposte

1

Hai pensato di scrivere un po 'di Java / C # / altra lingua a tua scelta per farlo? Se questo è solo un processo Extraxt, Trasforma, Carica di un solo pezzo, allora potresti semplicemente mettere insieme un po 'di codice che legge le righe dal database originale, esegue alcune trasformazioni (ad esempio, analizzando la stringa della data e convertendola in un oggetto data) prima di salvarla nel nuovo database. È possibile rendere questo codice piacevole quanto necessario / desiderato: sentirsi liberi di creare classi POCO / DTO sia per i vecchi e nuovi progetti di database e utilizzare uno strumento ORM come (N) Hibernate per gestire i mapping. Puoi avere un'interfaccia DateParser / base class che sia implementata / estesa in modo appropriato. E così via.

Anche se apprezzo che non ti ho dato una risposta concreta "Fai in modo di risolvere il tuo problema", spero che le informazioni di cui sopra ti portino nella giusta direzione. Per quello che vale, di recente ho lavorato in un team specializzato nella migrazione dei dati tra una varietà di sistemi e tutte queste informazioni provengono dalle mie esperienze. Sono più che felice di espandere qualsiasi cosa se vuoi maggiori informazioni, per favore basta chiedere nei commenti.

    
risposta data 27.12.2013 - 10:10
fonte
0

Un modo che posso vedere per gestire questo caso è (anche se potrebbe non essere il modo ideale):

  1. Scrivi la query MS SQl per recuperare i dati nel modulo che possono essere importati in MySql db come cambiare la data dalla stringa alla data corretta
  2. Salva sopra il risultato nel file
  3. Scrivi la query MySql per memorizzare direttamente i dati dal file al database
risposta data 22.10.2013 - 06:22
fonte

Leggi altre domande sui tag