2016-05-01 10 views
1

Ich frage mich, der beste Weg, eine alte Website in eine neuere Schiene App zu integrieren.Wie kann ich eine große Anzahl von statischen HTML-Dateien zur Rails-App hinzufügen, ohne den Entwicklungszyklus zu verlangsamen?

Das Vermächtnis Website:

  • Hat 21.000 kleine Textdateien mit minimalem Markup, die miteinander verbunden sind.
  • Summen ~ 220MB
  • Hat eine Root-Seite in einem Verzeichnis befinden und zu viele Unterverzeichnisse verknüpft ist

Ich möchte den alten Standort in meine Schienen-app-Ordner enthalten, aber ich bin besorgt dass es bei jeder Bereitstellung einen viel längeren Entwicklungszyklus bedeutet. Ich verwende capistrano und mein erster Gedanke ist, den Ordner mit Old Site in das freigegebene Verzeichnis auf dem Produktionsserver zu platzieren und symbolisch entsprechend zu verknüpfen. Dieser Ansatz erscheint mir unerwünscht, da meine Ressourcen für Neue App an mehr als einem Speicherort aufgeteilt werden. Der Vorteil könnte ein viel schnellerer Debug/Bereitstellungszyklus sein.

Derzeit habe ich keine Pläne, die Old Site Dateien zu ändern. Irgendwann könnte sich das ändern.

Ich war beeindruckt, wie schnell mein ansonsten leichtgewichtiges Projekt eingesetzt wird. Im Moment mache ich häufige Änderungen und wiederhole den Code/Deploy-Zyklus oft. Ich möchte vermeiden, das unnötig zu verlangsamen.

Gibt es eine Best Practice für diese Art von Sache?

+0

Ich bin mir nicht sicher, warum Sie sich Sorgen machen sollten, dass dies Ihren Entwicklungszyklus verlangsamt. Sie können Ihrer Rails-App und ihrem Git-Repository so viele statische Daten hinzufügen, wie Sie möchten, und es gibt keine Strafe oder Verlangsamung. – meagar

+0

Nicht verschämt sein, aber ist das wahr? Die Bereitstellung erfolgt jetzt in etwa 25 Sekunden. Würde das Hinzufügen von 21.000 Textdateien diese Metrik nicht beeinflussen? –

+0

Deployment und Entwicklung sind zwei völlig verschiedene Dinge. Ihre Entwicklungsumgebung ist nicht von statischen Dateien auf der Festplatte betroffen. Ihr Bereitstellungsvorgang * kann * sein, wenn Sie alle diese Dateien bei jeder Bereitstellung über das Netzwerk kopieren. – meagar

Antwort

0

Ich glaube nicht, dass es eine "Best Practice" per se gibt, aber eine Option wäre "Git Submodules" zu verwenden. Fügen Sie Ihre Old Site als Submodul in den richtigen Ordner in Ihrer New Site hinzu und Sie haben ein Entwickler-Git-Repository und Capistrano wird keine Git-Submoduldateien während der Bereitstellung abrufen.

Mit Submodulen haben Sie 2 Git-Repositories. Aber eines wird von einem anderen verlinkt ("alte Seite" in "neue Seite"). Ich denke, es ist logisch. Sie werden alte Website Repo und neue Website Repo haben. Sie sind schließlich 2 getrennte Seiten, nur verbunden.

+0

Werft einen Blick darauf werfen. Vielen Dank. –

+0

Dies sieht wie eine praktikable Option aus. Vielen Dank. Ich habe git ziemlich schätzen gelernt, aber mein Komfortniveau als Git User bleibt ziemlich niedrig. Nicht so sehr für den Workflow, der gut läuft, aber wenn etwas schief geht, betone ich, dass ich mit git einen Fehler machen werde. –