Pagina 2 di 3 primaprima 1 2 3 ultimoultimo
Visualizzazione dei risultati da 11 a 20 su 22
  1. #11
    ciao Piero.mac, forse (anzi probabilmente) non mi sono spiegato bene!

    Riassumo brevemente

    Sviluppo un sito in locale. Lo esporto in remoto. Dopo giorni , in locale, altero la struttura delle tabelle, inserendo, eliminando o modificando alcuni campi delle tabelle.
    Diciamo che queste mie modifiche avvengono in 2 giorni.
    Alla fine dei 2 giorni NON ricordo tutte le modifiche apportate al DB.
    Devo pero' esportare le nuove strutture delle tabelle sul web SENZA perdere i dati che nel frattempo sono stati caricati sul sito, poiche' i dati in locale sono SOLO le mie prove, mentre quelle sul web sono i dati reali.
    Se utilizzo un dump e lo carico sul web con l'aggiunta del DROP FILE, perdo tutti i dati.

    Domanda: esiste un modo per effettuare differenze tra tabelle in locale e in remoto da poter carpire solo le strutture variate?

    Esempio:
    - tabella rubrica in locale con caricati 21 records.
    id int(12)
    cognome varchar(50)

    - tabella rubrica in remoto con carcati 550 records.
    id int(12)
    cognome varchar(20)

    La differenza e' il varchar che da 20 passa a 50.

    Se utiilizzo il dump con drop file , perdo i 550 records gia' caricati.

    grazie a tutti per la disponibilità.
    ______________________________________

    Progresso Web.

  2. #12
    codice:
    ALTER TABLE rubrica CHANGE cognome cognome VARCHAR( 50 )
    se solo devi allargare il campo.....

    Se sei tormentato dai dubbi fai una copia della tabella e lavora su quella...

    codice:
    create table prova
    select * from rubrica
    e poi l'alter table

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

  3. #13
    ok piero, fin qua ci siamo.
    Il mio problema non e' conoscere l'alter table, che comunque utilizzo in locale per apportare la modifica, cosi' come tu hai scritto. Quello era solo un esempio.
    io mi ritrovo con una trentina di tabelle da modificare, alcune delle quali non le modifico io , ma un mio collega.
    Ora se a fine giornata volessi esportare le nuove strutture sul web, sarei costretto a ripetere tutte le alter table che ho utilizzato anche sul web. Esatto?
    Questo vorrei evitare, perche' potrebbe capitare che io dimenticassi alcune alter table eseguite in locale e avrei un disallineamento dei DB.
    ______________________________________

    Progresso Web.

  4. #14
    non hai molte soluzioni ... ti dovresti scrivere un programma che prenda in entrate 2 connessioni che si occupi di confrontare la struttura di tutte le tabelle e vada a fare eventuali modifiche

    il problema è che se aggiungi campi ... cosa ci metti dentro? solo il valore di default ... senno scoppia tutto ^^
    The fastest Redis alternative ... cachegrand! https://github.com/danielealbano/cachegrand

  5. #15
    ok daniele, forse e' quello che avrei voluto sentire.
    Nulla a togliere a piero, ma il problema era solo sapere se esisteva o no una soluzione unica.
    Naturalmente se conservo tutte le alter table o tutte le add potro' sempre risalire.
    Grazie
    ______________________________________

    Progresso Web.

  6. #16
    Originariamente inviato da caruccis
    ok daniele, forse e' quello che avrei voluto sentire.
    Nulla a togliere a piero, ma il problema era solo sapere se esisteva o no una soluzione unica.
    Naturalmente se conservo tutte le alter table o tutte le add potro' sempre risalire.
    Grazie
    Guarda che una soluzione unica NON esiste. Nel senso che ogni modifica va valutata per se stessa. Mi pare che i tuoi dati non devono andare nella struttura ONL, e quindi va da se che se aggiungi una colonna questa rimanga vuota e poi popolata eventualmente con update.

    Altra cosa che non capisco e' come siate arrivati a dover modificare la struttura ... non si sa da chi, quando e come.... ma dai questa e' anarchia informatica.


    Provate a cambiare il progettista che e' meglio....

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

  7. #17
    Originariamente inviato da caruccis
    ok daniele, forse e' quello che avrei voluto sentire.
    Nulla a togliere a piero, ma il problema era solo sapere se esisteva o no una soluzione unica.
    Naturalmente se conservo tutte le alter table o tutte le add potro' sempre risalire.
    Grazie
    anche se non conservi tutte le alter ti basta semplicemente confrontare le due tabelle per vedere le differenze ed una volta fatto su un'altro phpmyadmin per gestire l'altro db, quello online, vai a riportare tutte le modifiche hai campi dopo di che ti limiti ad aggiungere gli altri, sempre tramite il nuovo phpmyadmin

    è molto meglio rispetto a conservarsi le varie alter table perché:
    - sei sicuro che se qualcuno ha fatto modifiche che non conosci hai tutto
    - sei sicuro che la tabella di destinazione rispecchi matematicamente a quella sorgente
    The fastest Redis alternative ... cachegrand! https://github.com/danielealbano/cachegrand

  8. #18
    ok ragazzi, siete stati molto esaurienti.

    Un'altra domanda.

    Il problema posto in questo 3d puo' essere paragonato all'avanzamento di versione di un software? Cioe' come gestire un software che partendo dalla ver. 1.0, comprende 15 tabelle, e che dopo un mese di lavoro sono state aggiunte 3 tabelle, modificate 7 tabelle, ecc, e si e' deciso di rilasciare la ver. 1.1 ? Naturalmente la ver. 1.1 dovra' apportare innanzitutto le conversioni di tabelle sopra elencate per far si che il software fermo alla ver. 1.0 non perda i dati precedentemente caricati, ma che effettui solo un aggiornamento.

    Queste domande per me sono fondamentali per intraprendere un progetto che dovro' iniziare a giorni, e vorrei tener chiare le idee per il prosieguo.

    Grazie.
    ______________________________________

    Progresso Web.

  9. #19
    beh

    innanzi tutto utilizzerei un software di gestione del codice sorgente mettendoci periodicamente anche il dump del database

    una volta rilasciata la versione 1.0 taggherei i codici sorgenti come versione 1.0 in modo tale che quati ti vengano copiati in un'altra "sezione" cosi che tu sappia che li ci sta la 1.0 con tutto il database

    a questo punto continui lo sviluppo ... finisci lo sviluppo ... ora devi sviluppare il codice che ti esegua l'aggiornamento ... per farlo ti basta prendere il dump della 1.0 e, confrontandolo con la 1.1, crei un bel file php che lanci tutta una serie di query (che devi scrivere tu in modo tale che il database venga aggiornato) e che modifichi i dati per come serve

    un consiglio personale è quello di scrivere da qualche parte la versione corrente del software in modo che questo script sarà in grado di aggiornare dalla 1.0 alla 1.6 senza dover lanciare 6 script di aggiornamento perché sa la sua versione e sa cosa deve fare per aggiornarsi
    The fastest Redis alternative ... cachegrand! https://github.com/danielealbano/cachegrand

  10. #20
    ok, grazie.
    innanzi tutto utilizzerei un software di gestione del codice sorgente mettendoci periodicamente anche il dump del database
    Hanno un nome? open source?

    grazie
    ______________________________________

    Progresso Web.

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.