diff options
author | Jef van Schendel <mail@jefvanschendel.nl> | 2012-03-06 00:36:15 +0100 |
---|---|---|
committer | Jef van Schendel <mail@jefvanschendel.nl> | 2012-03-06 00:36:15 +0100 |
commit | 3d541b04a9c5fe5729ce1b4386a2964b2730484d (patch) | |
tree | 8bbb87bef4e4ff3df35f2bc492f038328fed459e /mediagoblin/db/sql/util.py | |
parent | b01a3b938666569cc021698ce854fb534e4d85e3 (diff) | |
parent | b62b3b982a2543fb881c93570c544fbef61dd97e (diff) | |
download | mediagoblin-3d541b04a9c5fe5729ce1b4386a2964b2730484d.tar.lz mediagoblin-3d541b04a9c5fe5729ce1b4386a2964b2730484d.tar.xz mediagoblin-3d541b04a9c5fe5729ce1b4386a2964b2730484d.zip |
Merge branch 'master' of gitorious.org:mediagoblin/mediagoblin
Diffstat (limited to 'mediagoblin/db/sql/util.py')
-rw-r--r-- | mediagoblin/db/sql/util.py | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/mediagoblin/db/sql/util.py b/mediagoblin/db/sql/util.py index 13bc97e1..efb0fafe 100644 --- a/mediagoblin/db/sql/util.py +++ b/mediagoblin/db/sql/util.py @@ -17,6 +17,7 @@ import sys from mediagoblin.db.sql.base import Session +from mediagoblin.db.sql.models import MediaEntry, Tag, MediaTag def _simple_printer(string): @@ -282,3 +283,33 @@ def atomic_update(table, query_dict, update_values): table.find(query_dict).update(update_values, synchronize_session=False) Session.commit() + + +def check_media_slug_used(dummy_db, uploader_id, slug, ignore_m_id): + filt = (MediaEntry.uploader == uploader_id) \ + & (MediaEntry.slug == slug) + if ignore_m_id is not None: + filt = filt & (MediaEntry.id != ignore_m_id) + does_exist = Session.query(MediaEntry.id).filter(filt).first() is not None + return does_exist + + +def clean_orphan_tags(): + q1 = Session.query(Tag).outerjoin(MediaTag).filter(MediaTag.id==None) + for t in q1: + Session.delete(t) + + # The "let the db do all the work" version: + # q1 = Session.query(Tag.id).outerjoin(MediaTag).filter(MediaTag.id==None) + # q2 = Session.query(Tag).filter(Tag.id.in_(q1)) + # q2.delete(synchronize_session = False) + + Session.commit() + + +if __name__ == '__main__': + from mediagoblin.db.sql.open import setup_connection_and_db_from_config + + conn,db = setup_connection_and_db_from_config({'sql_engine':'sqlite:///mediagoblin.db'}) + + clean_orphan_tags() |