def check_db_up_to_date(): """Check if the database is up to date and quit if not""" dbdatas = gather_database_data(mgg.global_config.get('plugins', {}).keys()) for dbdata in dbdatas: migration_manager = dbdata.make_migration_manager(Session()) if migration_manager.database_current_migration is None or \ migration_manager.migrations_to_run(): sys.exit("Your database is not up to date. Please run " "'gmg dbupdate' before starting MediaGoblin.")
def test_media_data_init(test_app): Session.rollback() Session.remove() media = MediaEntry() media.media_type = u"mediagoblin.media_types.image" assert media.media_data is None media.media_data_init() assert media.media_data is not None obj_in_session = 0 for obj in Session(): obj_in_session += 1 print(repr(obj)) assert obj_in_session == 0
def media_data_init(self, **kwargs): """ Initialize or update the contents of a media entry's media_data row """ session = Session() media_data = session.query( self.media_data_table).filter_by(media_entry=self.id).first() # No media data, so actually add a new one if media_data is None: media_data = self.media_data_table(media_entry=self.id, **kwargs) session.add(media_data) # Update old media data else: for field, value in kwargs.iteritems(): setattr(media_data, field, value)
def check_session_clean(self): for dummy in Session(): _log.warn("STRANGE: There are elements in the sql session. " "Please report this and help us track this down.") break