Wie werden aktive JEE Applications geupdatet?

membersound

Bekanntes Mitglied
Hi,

wie updatet man laufende JEE Applications? Also angenommen die Anwendung läuft, die Datenbank enthält bereits etliche Benutzer und sonstige Objekte. Jetzt möchte man für eines dieser Objekte eine Änderung durchführen (Felder hinzufügen oder löschen).

Wie kann man nun die Application aktualisieren und dabei auch die changes in der DB ausführen, ohne dass die Daten verloren gehen? (momentan arbeite ich noch mit hibernate:mem. Da werden die Tables ja so oder so bei jedem restart neu gebaut...).

Danke
 

tfa

Top Contributor
Bei DB-Änderungen gehen keine Daten verloren, es sei denn, du löschst irgendwelche Spalten oder Tabellen. Eine Erweiterung ist normalerweise unproblematisch. Die Anwendung wird einfach neu deployt, sobald die DB-Änderung durch ist.
 
S

Sym

Gast
In Regel machst Du einen Dump der DB, damit nicht schief gehen kann. :)

Aber allgemein schreibst Du ein oder mehrere sql-Skipte. Dann stoppst Du den Applikationserver. Spielst die Skripte ein. Installierst das Update und startest den Server neu.

Wo genau liegt denn Dein Problem?
 

membersound

Bekanntes Mitglied
Dass ich bisher nicht selbst irgendwelche SQL Befehle zur DB Änderung schreibe, sondern das alles vom Hibernate Mapping heraus automatisch geschieht (während dem Dev).

Nur wenn die App mal live geht, weiß ich eben nicht wie ich besehende tables entsprechend den Code-Changes anpassen kann...
 

tfa

Top Contributor
In der produktiven Umgebung ist der Hibernate-Automatismus natürlich ausgeschaltet. Da musst dann schon selber machen. Mit dem Schema-Generator kannst du dir das DDL ausgeben lassen.
 

Noctarius

Top Contributor
Mit Flyway kann man sich ein wenig helfen lassen, wenn man nicht gerade einen Feature-Driven Devcycle benutzt (dann wird es schwierig).
 
S

Sym

Gast
Wie sieht es mit
Java:
hibernate.hbm2ddl.auto=update
aus? Habt ihr Erfahrung damit in Production?
Das kannst Du natürlich tun. Allerdings sollte Dir bewusst sein, das eine Migration von Daten dadurch natürlich nicht unbedingt klappt.

Wenn das Schema lediglich erweitert wird, kannst Du damit laufen. Sollte mehr notwendig sein, musst Du die entsprechenden Skripte vor dem Starten der Applikation einspielen.

Generell wird so etwas jedoch nicht produktiv eingesetzt.
 

KSG9|sebastian

Top Contributor
Automatisch generierte Schemas in Produktion? Gott bewahre...bitte nicht!

Lass dir das DDL erzeugen und optimier es (Indizes u.s.w.).

Für Änderungen schreibst du halt Scripte von Hand..so wie es sich gehört :)
 

TheDarkRose

Gesperrter Benutzer
Ich meine Migrationsclasses. Ergo, wenn es ein Update des Datenbankschemas gibt, das eine MigrationClass erstellt wird, in dem man selbst die SQL-Befehle hineinprogrammiert, welche das DB-Schema verändern. Kenne es so z.B. von Doctrine und das funktioniert einwandfrei, wenn man eben die MigrationClass selbst erstellt/anpasst. Ein DB-Backup vor der Migration versteht sich von selbst.
 
S

Sym

Gast
Ich meine Migrationsclasses. Ergo, wenn es ein Update des Datenbankschemas gibt, das eine MigrationClass erstellt wird, in dem man selbst die SQL-Befehle hineinprogrammiert, welche das DB-Schema verändern. Kenne es so z.B. von Doctrine und das funktioniert einwandfrei, wenn man eben die MigrationClass selbst erstellt/anpasst. Ein DB-Backup vor der Migration versteht sich von selbst.
Mir wäre so ein Feature bei Hibernate nicht bekannt.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
pkm Root resource - Klassen werden nicht gefunden. Allgemeines EE 2
E Festlegen ob Datei überschrieben werden soll. Allgemeines EE 1
feinperligekohlensaeure JSF Keine Tabelle / Buttons werden unter Windows angezeigt + Apple schon Allgemeines EE 9
F SessionScoped und Stateful EJB: Werte werden nicht behalten Allgemeines EE 3
M Daten aus der Resource werden nicht übernommen Allgemeines EE 4
S Eclipse: Teilmodule beim Testen werden nicht gestartet Allgemeines EE 2
aze Tomcat:Error Pages werden nicht angezeigt Allgemeines EE 4
ruutaiokwu jboss problem - work-verzeichnis muss manuell gelöscht werden??? Allgemeines EE 5
D JSF-Tags können nicht aufgelöst werden ? Allgemeines EE 2
J Einige Klassen werden nicht resolved Allgemeines EE 7
P Können abstrakte Klassen über WSDL versendet werden? Allgemeines EE 3
I Klassen werden nicht für Import erkannt eclipse EE Allgemeines EE 2
S In Eclipse werden die "Servlet-Klassen" nicht gefu Allgemeines EE 2
A Warum werden die Managed Beans nicht erkannt? Allgemeines EE 3
M JSF Bilder werden wegen jsessionid nicht gefunden (nur IE) Allgemeines EE 6
M Resourcen werden in JSP nicht gefunden Allgemeines EE 12
A Wie werden Template Engines unter J2EE umgesetzt? Allgemeines EE 3
S tomcat pfad anpassen, von dem webinhalte gelesen werden Allgemeines EE 2
S tomcat pfad anpassen, von dem webinhalte gelesen werden Allgemeines EE 4
Q FileUpload/Download Files im Webroot werden gelöscht Allgemeines EE 4
G Änderungen an Jsps werden manchmal nicht übernommen. Allgemeines EE 3
P Umlaute werden falsch übergeben Allgemeines EE 4
J JSP Problem mit Image-Generierung (war: JSP werden nicht...) Allgemeines EE 10
S Änderungen werden nicht wirksam! Allgemeines EE 16
J Formular aktualisieren-Daten werden erneut in DB geschrieben Allgemeines EE 6
B Servlets werden gemappt --- aus und schluß, so ist es! Allgemeines EE 4

Ähnliche Java Themen

Neue Themen


Oben