Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    come fare un sincronizza tipo campo, aggiungi campo su tbl online

    Ciao a tutti... sto facendo un piccolo sito e mi è venuto un dubbio.

    Sto creando il db ma mi accorgo che spesso e volentieri mi capita di dover cambiare il tipo di un campo... aggiungerne un'altro ad una tabella esistente... mettere una chiave... ecc...

    Quel che mi chiedo è...
    se metto online il sito (come hosting ho aruba/linux con phpmyadmin)

    e dopo qualche settimana in locale mentre aggiungo una funzione mi accordo di dover cambiare un tipo campo.. aggiungerne un'altro ecc..

    come faccio a riportare queste modifiche sul db online?

    non vorrei certo cancellare tutto e ricaricarlo, anche perchè online nel frattempo si sarebbe riempito di dati...

    mi sapete dare un suggerimento o la procedura più corretta da adottare per non far casini e non perdere dati.

    Grazie a tutti

  2. #2

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  3. #3
    Originariamente inviato da piero.mac
    alter table

    http://dev.mysql.com/doc/refman/5.5/en/alter-table.html

    fin qua c'ero..
    è che in locale sto usando easyphp e mysql workbench

    con mysql workbench sto progettando un po alla volta il db che di volta in volta subisce modifiche causa nuove richieste.

    da mysql workbench facendo sincronizza, riesco tranquillamente a sincronizzare il db in locale che gestisco tramite phpmyadmin di easyphp

    il problema è che il sito si trova su hosting aruba e mi hanno detto che non è possibile collegare mysql workbench direttamente, perciò niente sincronizzazione.

    quindi mi chiedevo..ok.. ma come faccio ad aggiornare il db online?

    La mia idea (non so quanto giusta) era... fare un dump del db online
    caricarlo con nuovo nome su phpmyadmin

    aprire mysql workbench e fare la sincronizzazione tra il modello e il db appena caricato dal dump effettuato online.

    in questo modo mysql workbench prima di cliccare esegui mi genera e mostra il codice sql di alter che va ad eseguire.

    a questo punto potrei copiare questo codice ed eseguirlo direttamente sul db online.

    SE ci sono modi più svegli e meno complessi ... ben vengano.
    Mi chiedevo come fanno tutti.. anche perchè credo sia un problema molto comune.
    Di certo non ci si crea a mano tutte le alter table add column ecc..

    PS la mia "soluzione" però non riesco a farla funzionare, in quando non riesco a sincronizzare lo schema di mysql workbench con un db diverso dall'originale... se qualcuno sa come far puntare la sincronizzazione a un db diverso mi faccia sapere

    Grazie

  4. #4
    La mancanza di risposte mi lascia un po' perplesso...
    non capisco se:

    1. non mi sono spiegato bene
    2. non lo trovate un problema (e qui allora mi chiederei come fate voi)
    3. non avete idea di come fare (e qui allora mi chiederei.. ma non è un problema comune?)



    Nel caso non mi fossi spiegato, ditemelo pure... che provo a spiegarmi meglio,
    spero potrete consigliarmi qualcosa e grazie ancora a chiunque risponda.

  5. #5
    Utente di HTML.it L'avatar di _debo
    Registrato dal
    Mar 2012
    residenza
    London, UK
    Messaggi
    858
    La tua impazienza mi lascia perplesso altrettanto quanto te

    Allora il problema dell'allineamento e della modifica di un database è un problema che non è un problema. Cerco di spiegarmi meglio andando per gradi.

    1. Se hai un sito che è funzionante ed online, che acquisisce utenti registrazioni e quant'altro e necessità costante aggiornamento e modifica del database, stai facendo qualcosa di sbagliato in partenza, non si va mai live con un'applicazione che ha una base dati così instabile e mutevole.

    2. Nella remota ipotesi tu debba realmente modificare così tanto dati, informazioni ed attributi e che questo comporti la distruzione e creazione ex novo della base dati, significa che il database non è normalizzato e strutturato in modo opportuno da darti flessibilità. Altro errore di design.

    Come si risolvono questi problemi nella vita reale. Esattamente come stai facendo tu ora creando dei diff script che vanno ad intervenire solo dove serve.
    In passato l'unico tool di cui mi fidavo ciecamente questo tipo di operazioni era aqua data studio (http://www.aquafold.com/) a pagamento ovviamente.

    Volendo però avere un approccio più professionale si fa a mano
    Si lo so suona strano ma lascia che ti spieghi la tecnica prima.

    Si creano degli install script SQL ed una tabella di appoggio dove salvi l'elenco dei moduli funzionali che hai a disposizione e la loro versione. Gli install script sono incrementali ovviamente quello che succede è che nel momento in cui li lanci in cascata con uno script chiamato diciamo così updatedb.php controlli a che versione il modulo funzionale si trova e lanci solo gli script SQL che ti servono per portare il DB nello stato di configurazione che ti serve. Finito questo la versione aggiornata viene salvata nella tabella di appoggio.

    Questa operazione può poi essere automatizzata ma preferirei evitare di mettere troppa carne al fuoco per il momento.

    Spero di aver risposto ai tuoi dubbi.

  6. #6
    Hai ragione.. scusami se son sembrato troppo impaziente... è che erano 9 giorni che aspettavo una risposta.. e mi era stato detto solo di usare ALTER...

    Grazie per la risposta, ora vedo di studiare un po quel che mi hai detto, ti ringrazio.

    Scusa ancora non volevo sembrar antipatico, ci mancherebbe non pretendo risposte...

    Grazie ancora

  7. #7
    Utente di HTML.it L'avatar di _debo
    Registrato dal
    Mar 2012
    residenza
    London, UK
    Messaggi
    858
    Tranquillo ho messo lo smile apposta

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.