See [ref SRC:48 Schema.addPopulator() and class [ref SRC:15 Populator]. A customized Populator will normally define populateXxx() methods (where Xxx is the table name). Adamo (more precisely [ref SRC:48 Schema.startup()]) will decide whether and in which order to call these methods. I'm not yet sure whether it makes sense to support multiple Populators per Schema. Current practice shows that it is better to subclass Populators.
Mit Schema.addPopulator() kann man einen Populator angeben. Der kommt zum Zuge, wenn die Datenbank (ganz oder teilweise) neu erstellt wird.
Schema.startup() ruft für jeden Store dessen populateOrNot() auf. Der Store entscheidet, ob seine Tabelle bevölkert werden muss und ruft dann seinerseits Populator.populate() auf.
Adamo liefert einen Populator, der wahrscheinlich in allen Fällen als Basis genommen werden kann. Der schaut nach, ob eine Methode populateXxx existiert (Xxx ist der Name der Tabelle), und wenn ja, dann ruft er sie auf.
Refering articles:
- new class Populator (code changes 24.01.05) — I redesigned the system to populate databases. New class Populator. more
- multiple connections, populate() (code changes 10.01.05) — lino:tests/10.py is more difficult to find. Worked a whole day without getting it running. But quite some changes in adamo. Especially (1) better support for Multiple connections per database. (2) Populating databases more