pwiz, a model generator

pwiz is a little script that ships with peewee and is capable of introspecting an existing database and generating model code suitable for interacting with the underlying data. If you have a database already, pwiz can give you a nice boost by generating skeleton code with correct column affinities and foreign keys.

If you install peewee using setup.py install, pwiz will be installed as a “script” and you can just run:

  1. python -m pwiz -e postgresql -u postgres my_postgres_db

This will print a bunch of models to standard output. So you can do this:

  1. python -m pwiz -e postgresql my_postgres_db > mymodels.py
  2. python # <-- fire up an interactive shell
  1. >>> from mymodels import Blog, Entry, Tag, Whatever
  2. >>> print [blog.name for blog in Blog.select()]
OptionMeaningExample
-hshow help 
-edatabase backend-e mysql
-Hhost to connect to-H remote.db.server
-pport to connect on-p 9001
-udatabase user-u postgres
-Pdatabase password-P secret
-spostgres schema-s public

The following are valid parameters for the engine:

  • sqlite
  • mysql
  • postgresql