| Home | Trees | Indices | Help |
|---|
|
|
1 #!/usr/bin/python 2 3 import sqlalchemy 4 from sqlalchemy import create_engine 5 from sqlalchemy.orm import sessionmaker, scoped_session 6 from sqlalchemy.ext.declarative import declarative_base 7 8 import config 9 10 Base = declarative_base() 11 1214 for i in dir(model): 15 var = getattr(model, i) 16 if type(var) == type(Base) and var.__module__ == model.__name__: 17 # subtables, many to many relations 18 for i in dir(var): 19 var2 = getattr(var, i) 20 if type(var2) == sqlalchemy.schema.Table: 21 yield var2 22 yield var23 24 25 models = ('main.model', 26 'pluginmanager.plugins.model', 27 'user.model', 28 'clientjob.model',) 2931 ''' 32 returns the needed Base and metadata for defining new classes. 33 New classes should inheritance from Base. 34 35 >>> Base, metadata = init_model() 36 ''' 37 38 base = declarative_base() 39 metadata = base.metadata 40 41 return base, metadata42 4345 ''' 46 Create tables defined in a model. 47 ''' 48 49 metadata = model.metadata 50 db = create_engine(database, echo=False) 51 for table in get_tables(model): 52 if type(table) == sqlalchemy.schema.Table: 53 t = table 54 else: 55 print "creating table %s" % table.__tablename__ 56 t = metadata.tables[table.__tablename__] 57 t.create(bind=db, checkfirst=True)58 5961 ''' 62 Drop tables defined in a model. 63 ''' 64 65 metadata = model.metadata 66 s = connect() 67 68 for table in get_tables(model): 69 if type(table) == sqlalchemy.schema.Table: 70 continue 71 for i in s.query(table).all(): 72 s.delete(i) 73 74 for table in get_tables(model): 75 if type(table) == sqlalchemy.schema.Table: 76 t = table 77 else: 78 print "dropping table %s" % table.__tablename__ 79 t = metadata.tables[table.__tablename__] 80 t.drop(bind=s.bind, checkfirst=True) 81 s.commit()82 83 88 89 95 96 97 if __name__ == '__main__': 98 create() 99
| Home | Trees | Indices | Help |
|---|
| Generated by Epydoc 3.0.1 on Wed Aug 4 09:57:34 2010 | http://epydoc.sourceforge.net |