예제 #1
0
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
예제 #3
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)
예제 #4
0
 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