Il miglior approccio per sviluppare il progetto php mysql con più sviluppatori

2

Siamo 4 sviluppatori che lavorano su un progetto web PHP-mySQL. Attualmente lavoriamo insieme come descritto di seguito: Tutti i file di progetto tranne DB sono ospitati su GitHub

  • Tutti i file di progetto tranne DB sono ospitati su GitHub
  • DB è sul nostro server di produzione
  • Abbiamo un server web locale e php installati e funzionanti localmente, la connessione a DB è remota. Quindi il database è sempre sincronizzato.
  • Ogni sviluppatore estrae GitHub, quindi trasferisce le sue modifiche a GitHub
  • Il server preleva da GitHub per aggiornare il sito web

I problemi che abbiamo dovuto affrontare finora

  • Il trasferimento da GitHub sul server è manuale o eseguito da cron job. Quale non ritengo sia la scelta giusta.
  • Poiché le nostre macchine locali utilizzano la connessione mySQL remota, riscontriamo dei timeout nell'esecuzione delle query.

Quindi non so quale sarebbe un approccio migliore per la nostra situazione?

    
posta Hadu 22.12.2015 - 07:49
fonte

2 risposte

1
  1. Per gli aggiornamenti del sito Web, puoi configurare un WebHook (Github - > Repository-Settings - > Webhooks). Può chiamare un URL personalizzato quando è avvenuta una push al repository.

  2. C'è qualcosa di sbagliato nell'applicazione, nella connessione Internet o in MySQL Server. La tua configurazione con un database remoto non è rara, in realtà dovrebbe essere in grado di mantenere una connessione stabile.

- Altrimenti: come ha detto @Evgeny, è possibile utilizzare un server CI (Jenkins, TeamCity, ecc.) Ma in realtà dipende dalla complessità del progetto. Perché non è un "gioco da ragazzi" impostare una pipeline con un'integrazione continua.

    
risposta data 22.12.2015 - 11:07
fonte
1

Penso che sia il primo: è necessario utilizzare alcuni strumenti di integrazione continua. Il meglio di tutto ciò che so è Jenkins. Penso che tu debba fare qualche ricerca su questo. Questo non è così difficile, ma molto utile. Quindi penso che tu debba pensare a un ambiente di sviluppo simile. Docker ti aiuta con questo.

Ecco un link per Docker: link Ecco un link per Jenkins: link

    
risposta data 22.12.2015 - 10:24
fonte

Leggi altre domande sui tag