Decided today was the day to learn TurboGears, so I sat down and started working out a model for the BetterBilling project. This is basically a generic provisioning system for ISPs or VoIP providers that I'm wanting to build.
The version I'm looking at right now is less generic than the envisioned one; that's just too abstract to take as a first project in a new framework. Basically what's missing from the full version is having all properties abstracted so that they have history, planned-change and similar support. Only overall state is going to have history support for now.
The design went poorly until I discovered that SQLObject has an InheritableSQLObject class. Nice feature that! It did seem to mess up the SQL generation (got the ';' in front of one table definition instead of after it), but oh well.
Reworked the schema to use inheritence throughout after that discovery. I've still got a few EnumCol instances in there. Think I'll drop those in favour of real tables for the definitions. Haven't created the pricing tables schema yet either. Wasn't able to use the interactive model editor, just kept not working without any explanation, so gave up on it. Too bad, I like those kinds of tools for laying out very large projects. Haven't figured out how to do default rows (that is, rows that are present in the database on initialisation) with SQLObject's SQL generation either.
Anyway, all in all things went fairly well, though I never got out of SQLObject and into the web side of things. Will continue plugging away at it tomorrow.
Pingbacks are closed.