Schlagwort-Archive: MySQL

Vergleiche Strukturen zwischen MySQL Datenbanken

Möchte man die ALTER Statements zweier Datenbank-Revisionen automatisch generieren lassen, bietet sich das Commandline Tool mysqldiff an. Damit kann man auf einfache Art und Weise die benötigten DDL-Statements zwischen Produktiv-Version und aktuellem Development-Snapshot erstellen.

Unter Ubuntu installiert man das in Perl geschriebene Programm am einfachsten via CPAN:

> sudo cpan
cpan[1]> install MySQL::Diff

Nach der Installation führt man den Vergleich durch

> mysqldiff -u root -p PASS powerlab_latest_stable powerlab_dev

In meinem Beispiel möchte ich die Änderungen der Datenbank powerlab_latest_stable hin zu powerlab_dev bekommen.

Der Output sieht dabei wie folgt aus:

ALTER TABLE lab_event_tags ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8; # was ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=latin1
ALTER TABLE lab_event_tags_mapping ENGINE=InnoDB DEFAULT CHARSET=utf8; # was ENGINE=InnoDB DEFAULT CHARSET=latin1
ALTER TABLE lab_person DROP COLUMN last_participation; # was varchar(30) DEFAULT NULL
ALTER TABLE lab_person CHANGE COLUMN comment comment text; # was varchar(45) DEFAULT NULL
ALTER TABLE lab_person ADD COLUMN is_deleted tinyint(1) DEFAULT NULL;
ALTER TABLE lab_person ENGINE=InnoDB AUTO_INCREMENT=3113 DEFAULT CHARSET=utf8; # was ENGINE=InnoDB AUTO_INCREMENT=3112 DEFAULT CHARSET=utf8
ALTER TABLE lab_person_values ENGINE=InnoDB AUTO_INCREMENT=42424 DEFAULT CHARSET=utf8; # was ENGINE=InnoDB AUTO_INCREMENT=42390 DEFAULT CHARSET=utf8

ADOdb Transactions mit MySQL

Wer mit ADOdb als Datanbank Lib und MySQL als DBMS Transaktionen verwenden möchte, muss den Datenbanktreiber ‚mysqlt‘ verwenden – mit angehängtem „t“.

Ich habe leider viel zu lang suchen müssen und bin schließlich auf einen 4 Jahre alten Blogpost des Bloggers Jason Lefkowitz gestoßen.

Möge dieser Blog Post einem Leidensgenossen eine schnelle Hilfe sein..!