In storm, I miss the feature to have an automatic generated schema. For example: I must write {{{ #!python from storm.locals import * store = Store(create_database('sqlite:')) class Movie(object): __storm_table__ = 'movies' id = Int(primary=True) title = Char() language = Char() length_in_min = Int() description = Unicode() store.execute('CREATE TABLE movies ' '(id INTEGER PRIMARY KEY, title VARCHAR, language VARCHAR, length_in_min INTEGER,' 'description TEXT)') }}} I think the last part (`store.execute(...)`) is unnecessary. You can set default values for the SQL part and if you want to change something, you can change it via argument: {{{ #!python class Movie(object): __storm_table__ = 'movies' id = Int(primary=True) title = Char(sql_field='title TEXT') language = Char() length_in_min = Int() description = Unicode() }}} Also, now is `title` a Text field and you needn't to write the last part for changing it. I think it's better because mostly, the first part is the same like the second part. And with this solution it's simpler to write your own store and define you own database in an other file than the database model. Example: {{{ #!python # database.py store = Store(create_database('sqlite:')) class Movie(object): __storm_table__ = 'movies' id = Int(primary=True) title = Char() language = Char() length_in_min = Int() description = Unicode() store.execute('CREATE TABLE movies ' '(id INTEGER PRIMARY KEY, title VARCHAR, language VARCHAR, length_in_min INTEGER,' 'description TEXT)') # application.py from database import store, Movie }}} With my idea you can make {{{ #!python # database.py store = Store(create_database('sqlite:')) class Movie(object): __storm_table__ = 'movies' id = Int(primary=True) title = Char() language = Char() length_in_min = Int() description = Unicode() # application.py from storm.locals import * from database import Movie store = Store(create_database('sqlite:')) store.add_table(Movie) # do inserts, selects and other stuff... }}} But maybe this is another idea. And for people who don't like that, you can put in an own file that you must import it extra. {{{ #!python import storm.schema # work like described above }}} So that you can work with it or without it. Just an idea... Cheers, Rafael Weber ---- I have implemented a prototype of this at: http://bazaar.launchpad.net/~aafshar/storm/automatic-table-schema-generation At the moment the mapping of attribute types to schema types is hard-coded. I suspect that eventually you would want to ask the database what to do. AliAfshar UPDATE: This branch has been obsoleted, and replaced with: http://bazaar.launchpad.net/~cg-webshox/storm/auto-schema-creation