Änderungen an einer Live-Site vornehmen (Codeigner, aber nicht spezifisch)

8

Ich benutze Codeigniter, wenn das einfacher ist. Ich frage mich, ob eine Website live mit einer Datenbank und Benutzern ist, auf die zugegriffen wird, und ich habe eine neue Idee, die ich in die Website implementieren soll. Wie soll ich das tun? Arbeiten Sie direkt auf der Live-Site?

Oder kopieren Sie die Datenbank und die Dateien auf einen lokalen Server (MAMP / WAMP / XAMMP) und bearbeiten Sie sie dort. Wenn dies funktioniert, aktualisieren Sie die Live-Site mit den Änderungen. Gibt es bei dieser zweiten Methode trotzdem zu prüfen, welche Dateien geändert wurden und nur hochladen? Was passiert, wenn es auf einem lokalen Server läuft, aber nach der Aktualisierung der Live-Site funktioniert es nicht?

Die Codeigniter-Konfiguration hat auch die Option der Standarddatenbank und anderer Datenbanken. Ich frage mich, wie diese zum Testen verwendet werden können?

    
Nyxynyx 07.06.2011, 17:54
quelle

3 Antworten

8

Arbeiten Sie nicht direkt auf der Live-Site. Verwenden Sie stattdessen eine Entwicklungsumgebung (z. B. vmware oder virtualbox auf Ihrem Computer) und klonen Sie die Live-Umgebung. Holen Sie sich Code in Versionskontrolle (ich sage es noch einmal: GET IHR CODE IN VERSION CONTROL ), machen Sie Ihre Entwicklung auf dem Entwicklungsrechner, gegen einen Entwicklungszweig in der Versionskontrolle. Wenn Sie mit den Änderungen fertig sind und getestet werden, binden Sie sie in einen Zweig "Bereitstellungen" oder "Live" ein und stellen Sie sie von dort aus auf der Live-Site bereit. Stellen Sie sicher, dass Sie eine Sicherungskopie der Datenbank erstellen, bevor Sie den neuen Code bereitstellen.

Bearbeiten : Verwenden Sie symbolische Links, um Ihre neue Codebasis auf der Live-Site zu platzieren. Wenn es nicht funktioniert, schalte es einfach zurück in das alte Verzeichnis. Spart Ihnen eine Menge Greif!

    
user151841 07.06.2011, 17:57
quelle
5
  1. Lesen Sie die Versionskontrolle (svn, git, et al.).
  2. Arbeiten Sie nie auf einer Live-Site, vorzugsweise auf einem anderen Server (um zu verhindern, dass while(1){..} abstürzt usw.), aber auf demselben Server mindestens auf einem anderen Documentroot / Domain, vorzugsweise mit beschränktem Zugriff auf Ihre IP.
  3. Normalerweise kopiere ich nur die Tabellendefinitionen ( mysqldump -t ist nett dafür) und habe eine andere Datenbank zusammen, wenn du die neuste & amp; Größte Daten, Sie könnten Ihre Hauptdatenbank zu einer Test-Datenbank replizieren, die Ihnen auch den Vorteil eines billigen Backups bietet, wenn Sie noch keins haben.
  4. Normalerweise setze ich einen Schalter in der Apache / Vhost-Konfiguration ( SetEnv DEV=1 ), so dass ich im Code if(getenv('DEV')==1) verwenden kann, um zu überprüfen, ob ich Variablen bei Fehlerbedingungen nur dumpen kann und die Möglichkeit der versehentlichen Upload von Code mit einem "Entwicklungsschalter", der immer noch zufällig eingeschaltet ist.
Wrikken 07.06.2011 18:02
quelle
2

Die typische Antwort auf diese Frage lautet: Arbeitet in der Testumgebung, nicht in der Produktionsumgebung . Und ich stimme zu, dass dies oft der beste Weg ist, mit Veränderungen umzugehen. Wenn Sie den Luxus einer Testumgebung haben, dann nutzen Sie alle Vorteile. Schließlich ist es dafür da - um zu testen.

Das bedeutet jedoch nicht, dass das Arbeiten in der Produktionsumgebung völlig tabu ist. Ihre Entscheidung sollte auf ein paar Faktoren basieren:

  • Ist der Betrieb Ihrer Website für Ihre geschäftlichen Anforderungen von entscheidender Bedeutung?

Wenn dies der Fall ist, führen Sie alle Ihre Arbeiten in einer Testumgebung durch und stellen Sie sie in Ihrer Live-Umgebung bereit, wenn Sie Ihre Änderungen vollständig getestet haben.

  • Haben die Änderungen, die Sie vorhaben, große Auswirkungen auf den Rest der Website?

Möchten Sie beispielsweise das Datenbankschema ändern? Möchten Sie die Art und Weise ändern, in der sich Benutzer auf Ihrer Website an- oder abmelden? Wenn ja, arbeiten Sie in der Testumgebung. Wenn Sie das Verhalten einer Seite ändern, die an anderer Stelle keine Auswirkungen hat, können Sie die Änderung in der Produktionsumgebung vornehmen.

  • Wie lange dauert die Implementierung Ihrer Änderungen?

Wenn Sie nicht garantieren können, dass Ihre Änderungen nicht länger als 15-20 Minuten dauern, sollten Sie in einer Testumgebung arbeiten.

    
villecoder 07.06.2011 18:04
quelle

Tags und Links