Ich habe einige Probleme mit der Einstellung von PropelORM, um mit mehreren Datenbanken zu arbeiten. Ich konnte in der Dokumentation nichts Nützliches finden.Propelorm v1 mehrere Datenbanken
Generieren von Schemata aus mehreren Datenbanken
Ich ziehe eine Änderung an Datenbankschema zuerst zu machen und dann laufen
$ propel-gen . reverse
schema.xml zu bekommen. Was passiert, wenn mein System aus mehr als einer Datenbank besteht? Kann es mehrere Schemas generieren? Ich weiß aus der Dokumentation buildtime-conf.xml muss erstellt werden, aber es tut nichts für mich.
generieren Klassen
Sagen wir, ich blog.schema.xml und platform.schema.xml zu verschiedenen Schemata erstellt. Ist es möglich zu:
haben Sie ein anderes Klassenpräfix für jedes Schema? In build.properties kann ich
propel.classPrefix
setzen, aber das wird global für jedes Schema funktionieren.Haben Sie für jedes Schema einen anderen Projektnamen? Wieder in der build.properties kann ich setzen
propel.project
und das wird ein bestimmtes Verzeichnis in Klassen Verzeichnis erstellen. Im Moment werden alle Klassen an denselben Ort gehen. Wenn ich denselben Tabellennamen in beiden Schemas verwende, überschreibt eine Klasse die andere.
Die Lösung, die ich auf meinem eigenen kommen kann, ist ein 2 verschiedene Verzeichnisse Setup für eine bestimmte Datenbank zu haben, aber ich würde elegantere Lösung bevorzugen.
Diese Ressourcen könnten hilfreich sein: http://propelorm.org/cookbook/using-sql-schemas.html http://trac.propelorm.org/ticket/940 –
Sie Frosty danken. Die Dokumentation ist klar, aber wenn ich anfange, den Richtlinien zu folgen, funktioniert alles anders. Das Handbuch sagt über proprive.schema.autoPrefix Parameter. Es gibt keine automatischen Präfix-Klassen für mich. Das einzige, was es für mich tut, ist, wenn proprive.schema.autoNamespace auf TRUE gesetzt ist, dann überschreibt es es auf FALSE (vielleicht nicht direkt, aber das ist das Ergebnis). –
Pakete http://propelorm.org/cookbook/multi-component-data-model.html funktionieren auch nicht wie in der Dokumentation beschrieben. Es besagt, dass wenn Sie ein Paket auf der Ebene DATABASE setzen, es Dateien in classes/my_project/package_name erstellt, während es für mich nicht mein_project dir erstellt, sondern alle Pakete direkt in die Klasse gehen. Nur um klar zu sein habe ich die neueste Version von prop1 von git bekommen. –