def initialize_db(self): if self.use_sqlite: engine = sqAl.create_engine('sqlite:///%s' % self.config.value(CONFIG_DB_PATH_NAME)) else: engine = sqAl.create_engine('%s://%s:%s@%s:%s/%s' % (self.config.value(CONFIG_REMOTE_DB_SCHEME), self.config.value(CONFIG_REMOTE_DB_USER), self.config.value(CONFIG_REMOTE_DB_PASSWORD), self.config.value(CONFIG_REMOTE_DB_HOST), self.config.value(CONFIG_REMOTE_DB_PORT), self.config.value(CONFIG_REMOTE_DB_NAME)), pool_timeout=10) self.session = sqAl_sessionmaker(bind=engine)()
fn = specs['format'] % (field['fieldname'], name) cf = sqAl.Column(fn, specs['db_col_type'], default=field['default']) dynclass_dict[fn] = cf sub_fields.append(cf) dynclass_dict[field['fieldname']] = sqAl_composite(CompositeCol, *sub_fields) elif field['typ'] in ('int', 'dropdown', 'enumber'): dynclass_dict[field['fieldname']] = sqAl.Column(field['fieldname'], sqAl.Integer, default=-1) return type(name, (Base,), dynclass_dict) Participant = generate_class('Participant') if __name__ == '__main__': engine = sqAl.create_engine('sqlite:///%s' % wx.Config(CONFIG_MAIN_NAME).Read(CONFIG_DB_PATH_NAME), echo=True) Session = sqAl_sessionmaker(bind=engine) session = Session() # t = Participant(name='DynClass V.', # f29=CompositeCol(True,True,True,False,False,False,False,False,False,False,True,True,True,True), # f32=CompositeCol(14,21,28,0,0,0,0,0)) # print session.add(t) p = session.query(Participant).filter(Participant.id == 2).first() p.mtpv = 2 # p.name = 'Etre Petetre' # setattr(p,'f2', 28) # results = session.query(Participant).all() # for rec in results: # [setattr(rec, f['fieldname'], 0) for f in STRUCTURE.db_items if f['typ'] == 'dropdown' and getattr(rec, f['fieldname']) == -1] session.commit() # print dir(p)