La domanda riguarda l'organizzazione dell'ambiente di sviluppo per lo sviluppo web.
- Ci sono 2 cose da implementare: sito web e schema del database
- Usiamo SVN per tenere traccia del codice sorgente
- Utilizziamo gli strumenti RedGate per generare SQL di migrazione e schema del database di controllo delle versioni.
- È importante disporre di una nuova copia dei dati nel nostro ambiente di sviluppo.
In un primo momento, abbiamo lavorato su ciascun database personale. Ora il nostro team si sta ingrandendo, quindi abbiamo server di sviluppo con database condiviso.
Per i clienti, abbiamo creato il sito Web "test" che eseguiamo sul nostro server. E punta al nostro database di sviluppo.
Per i dati - portiamo una nuova copia del database settimanalmente, quindi è solo un'altra PITA perché lo facciamo per backup / ripristino e ovviamente schema diverso quando lo riportiamo.
Dove ora abbiamo un problema è quando rilasciamo qualcosa da testare per il cliente. Controllano, potrebbe volerci del tempo. Nel momento in cui controllano, potremmo già avere altre nuove funzionalità aggiunte al sito TEST. Ora, diciamo che mancano le funzioni A, B e C. Il cliente ha provato A, ma B e C devono essere testati o modificati. Un bisogno di andare a rilasciare.
Nelle grandi aziende dove lavoravo c'erano gli ambienti DEV, TEST e PROD. Quasi tutto il TEST DEV > non è andato a meno che non si sia verificato TEST- > PROD. Ciò ha causato solo perdite di tempo (realisticamente). Ora non possiamo permetterci semplicemente di stare seduti, quindi come facciamo a lavorare in modo veloce con questo minimo con hickups.
Ora, poiché aspettiamo ancora da un cliente il feedback su "A", abbiamo già "dimenticato" cos'altro abbiamo aggiunto. Con molte persone è solo più complesso.
Quindi, suppongo che la domanda sia: come gestire il controllo della versione DB / Code e la pubblicazione separata delle funzionalità in tale ambiente? Con minima burocrazia.