Datenbank-Refactoring mit LiquiBase



Ähnliche Dokumente
Database Change Management für Continuous Delivery. Diana Lander und Andreas Falk NovaTec Consulting GmbH

Agenda. Das Problem Das Werkzeug im Überblick Demo #1 Erweiterte Konzepte Demo #2 Praxiserfahrungen

Continuous Database Integration mit Flyway

DB Transformation und Migration

Datenbanken SQL Einführung Datenbank in MySQL einrichten mit PhpMyAdmin

Moderne Datenbankentwicklung mit Hilfe von SQL Server Data Tools

Einreichung zum Call for Papers

Planung für Organisation und Technik

Dokumentenmanagement mit active.pdm

Upgrade von Starke Praxis

Information zum SQL Server: Installieren und deinstallieren. (Stand: September 2012)

REGIONALES RECHENZENTRUM ERLANGEN [ RRZE] Datenbanken. RRZE-Campustreffen, Stefan Roas und Ali Güclü Ercin, RRZE

OP-LOG

HSR git und subversion HowTo

KEIL software. Inhaltsverzeichnis UPDATE. 1. Wichtige Informationen 1.1. Welche Änderungen gibt es?

Abamsoft Finos im Zusammenspiel mit shop to date von DATA BECKER

HP Software Patch- und Version-Notification

Geodatenmanagement und -harmonisierung mit GeoKettle

Apache HBase. A BigTable Column Store on top of Hadoop

GSM: Airgap Update. Inhalt. Einleitung

SJ OFFICE - Update 3.0

ORA.LogMiner. Nach Bestelleingang erhalten Sie eine Rechnung mit ausgewiesener Mehrwertsteuer und Informationen über die Zahlungsweise.

Internet online Update (Internet Explorer)

MOUNT10 StoragePlatform Console

Consultant & Geschäftsführer, enpit consulting OHG ugb@enpit.de

Eclipse Plugins für die komfortablere Verwendung von ibatis SQLMaps

So funktioniert die NetWorker 7.5 Eigenschaft zum Sichern umbenannter Verzeichnisse ( Backup renamed Directories )

Dipl. Inf. Dipl. Math. Y. Orkunoglu Datum:

Formular»Fragenkatalog BIM-Server«

Wo finde ich die Software? - Jedem ProLiant Server liegt eine Management CD bei. - Über die Internetseite

Team- Entwicklung unter Eclipse

NTT DATA Helpdesk Benutzerhandbuch

Referenzielle Integrität SQL

Prozessarchitektur einer Oracle-Instanz

LabTech RMM. Integration von Teamviewer. Vertraulich nur für den internen Gebrauch

Bedienungsanleitung CAD-KAS Reklamationserfassung. Einen neuen Datensatz anlegen. Klicken Sie auf das + Symbol, um einen neuen Datensatz anzulegen.

SQL (Structured Query Language) Schemata Datentypen

Software Systems Engineering

Internet Explorer Version 6

Titel. SCSM ITIL - CMDB - neue CI Klasse erstellen und benutzen. Eine beispielhafte Installationsanleitung zur Verwendung im Testlab

Projektbericht Gruppe 12. Datenbanksysteme WS 05/ 06. Gruppe 12. Martin Tintel Tatjana Triebl. Seite 1 von 11

SWISSVAULT StorageCenter Console Version 5 Kurzanleitung für SWISSVAULT Combo Partner

Infopark CMS Fiona. Fiona Release Notes

Individuelle Formulare

Online-Prüfungs-ABC. ABC Vertriebsberatung GmbH Bahnhofstraße Neckargemünd

Document Management. Überblick DM

Log xmllog textlog Log() start(filename) add(message) end() instance() Abbildung 7-10: Die Protokollierungs-API mit einer einfachen Fassade

Sehr geehrte Faktor-IPS Anwender,

IntelliRestore Seedload und Notfallwiederherstellung

QR-FUNKTION. Informationen über zu erledigende Aufgaben an das Reinigungspersonal senden.

Fakultät für Informatik & Wirtschaftsinformatik DB & IS II - SS Metadaten

Version 1.0 [Wiederherstellung der Active Directory] Stand: Professionelle Datensicherung mit SafeUndSave.com. Beschreibung.

Quartalsabrechnung! " " " " " " " Stufe 1! Beheben von Abrechnungsfehlern" Stufe 2! Neue Abrechnung erstellen"

novapro Open Audittrail Report

Updatehinweise für die Version forma 5.5.5

Versionsverwaltung mit SVN

Anleitung zur Daten zur Datensicherung und Datenrücksicherung. Datensicherung

Was passiert mit den Daten nach der Scheidung mit der Cloud Lösung?

Anleitung Abwesenheitsmeldung und -Weiterleitung (Kundencenter)

SQL für Trolle. mag.e. Dienstag, Qt-Seminar

Einfache und effiziente Zusammenarbeit in der Cloud. EASY-PM Office Add-Ins Handbuch

Naxtron GmbH Schlosstalstrasse Winterthur. Subject. New Features Oracle 9i Architecture

BAPS Basel Psychologie Studien

THEMA: "SAS STORED PROCESSES - SCHNELL GEZAUBERT" HELENE SCHMITZ

Dynamisches SQL. Folien zum Datenbankpraktikum Wintersemester 2009/10 LMU München

Lokale Installation von DotNetNuke 4 ohne IIS

Business Intelligence Praktikum 1

Universität Duisburg-Essen Informationssysteme Prof. Dr.-Ing. N. Fuhr. Praktikum Datenbanken / DB2 Woche 8: Trigger, SQL-PL

Open Source. Hendrik Ebbers 2015

1 Was ist das Mediencenter?

Praktikum Ingenieurinformatik (PI)

Iterativ. Inkrementell

MySQL Installation. AnPr

Wichtige Hinweise zu den neuen Orientierungshilfen der Architekten-/Objektplanerverträge

KURZANLEITUNG CLOUD OBJECT STORAGE

Inhalt. 1 Einleitung AUTOMATISCHE DATENSICHERUNG AUF EINEN CLOUDSPEICHER

Einfacher sind Sie Ihre Arbeit noch nie losgeworden!

Kurzeinführung Excel2App. Version 1.0.0

Windows 7 - Whoami. Whoami liefert Informationen wie z.b. die SID, Anmelde-ID eines Users, sowie Gruppenzuordnungen, Berechtigungen und Attribute.

5.2 Neue Projekte erstellen

IBM Software Demos Tivoli Composite Application Manager for SOA

SQL: statische Integrität

Ablaufbeschreibung für das neu Aufsetzen von Firebird und Interbase Datenbanken mit der IBOConsole

Lizenzierung von System Center 2012

Mercurial. or how I learned to stop worrying and love the merge. Ted Naleid IAIK

Facebook I-Frame Tabs mit Papoo Plugin erstellen und verwalten

Fastviewer Remote Support & Präsentation - Teilnehmer

Die Entwicklung des Open-Source. Source-Tools. zum Datenbankabgleich von Karsten Panier. Inhalt

Adobe Photoshop. Lightroom 5 für Einsteiger Bilder verwalten und entwickeln. Sam Jost

Installation von horizont 4 bei Verwendung mehrerer Datenbanken

SF-RB. Modul Provisionsabrechnung & Planung Reiseagentenprovisionsabrechnung & Planung. SF-Software Touristiksoftware

Systemwette. Sporttip set

Warum sich das Management nicht für agile Softwareentwicklung interessieren sollte - aber für Agilität

mysql - Clients MySQL - Abfragen eine serverbasierenden Datenbank

Ohne Build geht's besser: Makeloses Java mit dem z 2 -Environment. Henning Blohm

Flyway vs. LiquiBase. Battle der Datenbankmigrationstools

Whitepaper. Produkt: combit Relationship Manager / address manager. Integration der Ansicht "Adressen" in eigene Solution

Transkript:

Datenbank-Refactoring mit LiquiBase Agile Software-Entwicklung mit RDBMS Refactoring & Change Management Benjamin Schmid

Softwareentwicklung in der Praxis Hervorragende Lösungen beim Programmcode für: Versionierung SVN, CVS Build- und Ant,Maven Test-Automatisierung CI-Server Abstraktion und Modellierung UML Refactoring Eclipse, IDEA Und für die Datenbank? Datenbank-Refactoring mit Liquibase, Benjamin Schmid #2

Datenbank-Entwicklung in der Praxis Welchen Stand hat die Datenbank? Unknown column : Sind deine Änderungen schon drin? Wie nenne ich noch mal schnell die Spalte um? BIGINT in MySQL Und für Oracle? Uuups! Können wir schnell zurück zur vorigen Version? Nerv! Geht das alles nicht auch automatisch? Datenbank-Refactoring mit Liquibase, Benjamin Schmid #3

Open-Source (LGPL)-Lösung zur Ausführung, Management und Dokumentation von Datenbankänderungen Kern-Features: Herstellerunabhängig Automatisierung Rollback-Strategie Änderungsdokumentation Code-Branchfähig Teamfähig & DBA-fähig IDE Support Datenbank-Refactoring mit Liquibase, Benjamin Schmid #4

What s so special about LiquiBase? Kein Soll/Ist Diff-Tool sondern Beschreibung der Änderungen - Erhalt der Semantik (name name2: rename oder drop+new?) Änderungen werden einzeln betrachtet - Keine linearer Versionierung ( Branches) - Change Log wird sequentiell abgearbeitet; die ausstehenden Änderungen ausgeführt und in einer Tabelle protokolliert Datenbank-Refactoring mit Liquibase, Benjamin Schmid #5

Unterstützte Datenbanken - Oracle MS SQL MySQL PostgreSQL DB2 Sybase HLSQL Apache Derby H2 Caché MaxDB SQLlite Datenbank-Refactoring mit Liquibase, Benjamin Schmid #6

Wie funktionierts? (1) In einer XML-Datei/via IDE werden alle Änderungen in als Change Sets beschrieben & gepflegt: ID = id + author + filename Change Set durch MD5 Hash gesichert Datenbank-Refactoring mit Liquibase, Benjamin Schmid #7

Verfügbare Refactorings 13 Structural Refactorings Add/Rename/Drop: Colum/Table/View Merge Columns, Stored Procedure 10 Data Quality Refactorings Add/Drop: Constraint/Lookup-Table/Sequence/Default Value 4 Referential Integrity Refactorings Add/Drop: Foreign & Primary Keys 5 Non-Refactoring Transformations Insert/Load/Update/Delete Data 4 Custom Refactorings Custom SQL/Refactoring Class/Shell Command 2 Index Refactorings Datenbank-Refactoring mit Liquibase, Benjamin Schmid, exxcellent solutions #8

Wie funktionierts? (2) Ausführung der Change Sets über LiquiBase Runner: Ant, Maven, Kommandozeile, Servlet Listener, via API, Spring, Grails. Beispiel in Ant: Datenbank-Refactoring mit Liquibase, Benjamin Schmid #9

Wie funktionierts? (3) Folgende Operationen sind möglich: Automatische Migration auf akt. Stand Nur Prüfung auf offene Änderungen DDL-Skript Generierung (inkl. zugehörigem Rollback-Skript) Change Sets aus Datenbank-Diff erzeugen (Special Feature: Diff gegen Hibernate-Mapping!) Rollback, Datenbankstand taggen, Änderungsdokumentation, Drop-all, Datenbank-Refactoring mit Liquibase, Benjamin Schmid #10

Änderung von Code & Datenbank über die Zeit Codeänderung Codeänderung v 1.0 LiquiBase LiquiBase Change Set Change Set Codeänderung LiquiBase Change Set 1.1 Codeänderung Codeänderung v 2.0 LiquiBase LiquiBase Change Set Change Set Effektives LiquiBase Change Log Version- Verwaltung Aktuelle Datenbank (+ Change Log) Datenbank-Refactoring mit Liquibase, Benjamin Schmid #11

IDE Support Hervorragende verwendbar mit IDE-Bordmitteln Umfangreiches IntelliSense dank XML Schema IntelliJ IDEA Plugin Aktuellste Fassung (v1.8.0) und größter Umfang Eclipse Plugin Alpha-Status und aktuell veraltet (v0.6) Standalone IDE Veraltet und eher Technolgie-Demo (v 0.6) Datenbank-Refactoring mit Liquibase, Benjamin Schmid #12

PowerPoint iss doof IDE Demo Datenbank-Refactoring mit Liquibase, Benjamin Schmid #13

Tagging & Rollback Rollback-Wege: automatisch create table drop table drop table n/a explizite Definition: LiquiBase Refactorings SQL Anweisungen Re-do Change Set Y Rollbackpunkte: Datum / Uhrzeit Number of Changes Markierte Version (Tag) Datenbank-Refactoring mit Liquibase, Benjamin Schmid #14

Weitere Features MD5 gesicherte Change Sets (Erkennen nachträglicher Änderungen) runalways bzw. runonchange Generierung einer Änderungsdokumentation Hibernate Support (diff gegen Mapping Dateien: *.hbm.xml) Clusterfähig (Locking) und Contexts Preconditions und Assertions zur Zielplattform Datenbank-Refactoring mit Liquibase, Benjamin Schmid #15

Änderungsdokumentation Datenbank-Refactoring mit Liquibase, Benjamin Schmid #16

Fazit Mit Liquibase können Sie spielend Automatisiert beim Start ihre Datenbanken migrieren Die Datenbank adäquat wie Ihren Code behandeln DBA-konform Migrations- & Rollback Skripte erzeugen Und durch den Automatismus ideal für Software-Entwicklung im Team Continuous Integration und Testing einen agilen und robusten Entwicklungsprozess regelmäßige Auslieferungen Datenbank-Refactoring mit Liquibase, Benjamin Schmid #17

Alternativen (OSS) dbdeploy MIGRATEdb Referenzen Kontakt: B.Schmid(at)exxcellent.de oder an unserem Stand LiquiBase http://www.liquibase.org/ Materialien zum Thema Refactoring & Code Qualität Der 10 Punke Plan zum unwartbaren Code, Automatisiertees GUI-Testing, Refactorings, http://www.exxcellent.de/download.html http://dbdeploy.com http://migratedb.sourceforge.net/ Datenbank-Refactoring mit Liquibase, Benjamin Schmid #18