urlaubsverwaltung / urlaubsverwaltung

Schluss mit Papierchaos und langweiliger Software. Wir zeigen dir, dass Urlaubsverwaltung auch Spaß machen kann.
https://urlaubsverwaltung.cloud
Apache License 2.0
262 stars 82 forks source link

In Memory Datenbank als Standard #47

Closed fraulyoner closed 5 years ago

fraulyoner commented 9 years ago

Als Admin möchte ich die Urlaubsverwaltung installieren und starten können ohne zwangsläufig eine MySql Datenbank eingerichtet und in der Anwendung konfiguriert zu haben.

thiloplanz commented 8 years ago

Man könnte hierzu durchaus die eingebaute H2 Datenbank nutzen, allerdings eher nicht "In Memory" (weil dann alle Daten bei jedem Neustart verschwinden). Es ist relativ einfach die Datenbank so zu konfigurieren, dass alle Daten in eine Datei auf dem Server gespeichert werden. Im Prinzip muss man nur die JDBC URL entsprechend einstellen, z.B.

 spring.datasource.url=jdbc:h2:/opt/urlaubsverwaltung/db 

Dadurch erspart man sich in der Tat die Installation von MySQL.

derTobsch commented 5 years ago

Ich würde hier empfehlen in Zukunft weiterhin mit der mariadb zu fahren und zudem die h2 zu entfernen und zur Entwicklung eine docker-compose datei mit allen nötigen externen Abhängigkeiten bereit zu stellen, sodass bei der Entwicklung lediglich docker eine "Abhängigkeit" ist. @fraulyoner wenn wir das so machen wollen, dann könnte man dieses Issue schliessen.

djschilling commented 5 years ago

Ich finde das keine so gute Idee.

Dann ist zum Entwickeln entweder Docker oder MySQL nötig. Wenn die H2 bleibt ist keines von beidem nötig und der Einstieg fällt einfacher.

derTobsch commented 5 years ago

Ja wir wollen auf docker als dependency gehen und auch bei der Entwicklung eine zu prod gleich verhaltende Datenbank haben. Die H2 verhält sich anders als z.b. eine Maria in manchen Fällen.

honnel commented 5 years ago

Eine harte Abhängigkeit zu einer Datenbank wie MariaDB führt allerdings dazu das wir das auch in unseren Review-Apps auf Heroku da haben müssen. Aktuell müssen wir uns an der Stelle durch die H2 weniger Gedanken machen was ein Vorteil ist.

Vielleicht sind testcontainer der richtige Ansatz an der Stelle? https://phauer.com/2017/dont-use-in-memory-databases-tests-h2/

fraulyoner commented 5 years ago

Der Ursprungsgedanke dieses Issues war: Schnelle und einfache Installation der Urlaubsverwaltung ohne viel Konfiguration tätigen zu müssen. Ich glaube, das ist durch die Schiene, die jetzt gefahren wird, hinfällig geworden, oder?

Für einen schnellen und unkomplizierten lokalen Start der Anwendung zum Entwickeln würde ich mich persönlich über eine H2 freuen. Darum ging es aber wie gesagt beim Ursprung dieses Issues gar nicht.

Ich glaube also fast, das hier kann zu, oder? @honnel @derTobsch Wenn ihr das anders seht, bitte wieder öffnen.