Ich habe Schienen Anwendung mit Schienen 5 und Ruby 2.3 erstellt.
Ich möchte einige Änderungen in einigen Modelldateien hinzufügen und als neue Anwendung speichern. Ich möchte zwei Anwendungen in der Produktion als zwei ähnliche Anwendungen ausführen. Ich weiß, wie man den Controller unter Verwendung des Namespace versioniert, aber ich habe keine Lösung für Versionsschienenmodelle bekommen.Schienen wie die Modelle zu versionieren?
Antwort
Möchten Sie zwei Kopien der Anwendung in der Produktion unter verschiedenen Namespaces ausführen (z. B./v1/und/v2 /), die beide dieselbe Datenbank verwenden?
Es gibt keinen einfachen Weg, weil es keine gute Idee ist. Jedes Mal, wenn Sie zu einer Anwendung wechseln, müssen Sie daran denken, beides zu ändern - und schlimmer, wenn Sie in Zukunft weitere Versionen hinzufügen.
Wenn möglich, sollten Sie eine Codebasis teilen und eine Versionslogik in den Controller eingeben, der auf das Modell zugreift. Ihr Controller kann die Route überprüfen, die zum Treffen verwendet wurde (/ v1/oder/v2 /) und entsprechend reagieren.
Um eine Datenbank zwischen zwei Versionen Ihres Codes zu teilen, müssen Sie sicherstellen, dass alle Änderungen am Datenbankschema rückwärts- und vorwärtskompatibel sind, dh Sie können nur neue Tabellen oder Spalten hinzufügen (niemals umbenennen oder entfernen).
Wenn Sie die zwei Versionen Ihrer App nicht für die gemeinsame Nutzung derselben Datenbank benötigen, können Sie der neuen Version eine eigene Kopie der Datenbank geben (database: my_schema_v2
in config/database.yml
).
Oder Sie könnten das v2 des Modells einen eigenen Tabellennamen geben:
class Product < ApplicationRecord
self.table_name = "products_v2"
end
Aber noch einmal, dass die Produkte bedeutet nicht zwischen den alten und neuen Versionen des Codes gemeinsam genutzt werden.
- 1. Schienen: Index mehrere Modelle?
- 2. Schienen erstellen verknüpfte Modelle ohne zu speichern?
- 3. Rubin Syntax (Schienen-Modelle)
- 4. Wie Drupal mit Git zu versionieren?
- 5. schienen: wie man zwei ähnliche modelle
- 6. aktualisiert Modelle in Schienen/Migrationen
- 7. Löschen mehrerer Modelle in Schienen
- 8. Anfrage Schienen Modelle mit URL_PARAMS
- 9. Schienen url_for und namespaced Modelle
- 10. Standardwerte für Modelle in Schienen
- 11. Dynamisch Bereiche in Schienen Modelle
- 12. Schienen 3.2.3: Gewusst wie: zugeordnete Modelle zuordnen?
- 13. Schienen 4.0.0 Fremdschlüssel für Modelle
- 14. Schienen, wie Sie die Modelle korrekt in einen Namensraum bewegen
- 15. Wie versionieren Sie Ihre Projekte?
- 16. Optimieren einer Abfrage in Schienen Modelle aktiven Datensatz Schienen
- 17. howto assoziierte Admin-Modelle in Schienen zu generieren
- 18. Schienen 3 laden alle Modelle beim Start
- 19. Schienen rendern verwandte Modelle innerhalb des Bereichs
- 20. Ist es sinnvoll, Themenstrings zu versionieren?
- 21. Best Practice, um eine Datenbank zu versionieren
- 22. Schienen Routen für Modelle mit Abstammung
- 23. Schienen 4 Form für mehrere Modelle
- 24. Schienen 3.2.9 und Modelle in Unterordnern
- 25. eine Liste aller Modelle von Schienen erhalten
- 26. Wie testen Sie nicht ActiveRecord-Modelle in Schienen?
- 27. Wie ASP.NET MVC-Webanwendung in Git zu versionieren?
- 28. Schienen - Benutzereingabe für mehrere Modelle in einem einzigen Formular - Wie
- 29. Wie kann ich ein Programm korrekt versionieren?
- 30. Schienen 3: Wie generieren Modelle für bestehende Datenbanktabellen