aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorElrond <elrond+mediagoblin.org@samba-tng.org>2012-03-28 13:19:11 +0200
committerElrond <elrond+mediagoblin.org@samba-tng.org>2012-03-28 13:21:47 +0200
commit02f07bfe145fb4c3a31101c48202224d803004da (patch)
tree2df4b8368cb5e57da06cbb989c9d0cd28bf99369
parent352a1807659b0977c0ccdb8d4bad64aa4f5b5277 (diff)
downloadmediagoblin-02f07bfe145fb4c3a31101c48202224d803004da.tar.lz
mediagoblin-02f07bfe145fb4c3a31101c48202224d803004da.tar.xz
mediagoblin-02f07bfe145fb4c3a31101c48202224d803004da.zip
411: Add relationship and backrefs to media_data tables.
Adding proper relationship()s and especially backref()s will delete media_data rows along with the main MediaEntry. This fixes #411.
-rw-r--r--mediagoblin/media_types/ascii/models.py6
-rw-r--r--mediagoblin/media_types/image/models.py4
-rw-r--r--mediagoblin/media_types/video/models.py4
3 files changed, 12 insertions, 2 deletions
diff --git a/mediagoblin/media_types/ascii/models.py b/mediagoblin/media_types/ascii/models.py
index a35e6958..865c216c 100644
--- a/mediagoblin/media_types/ascii/models.py
+++ b/mediagoblin/media_types/ascii/models.py
@@ -18,8 +18,8 @@
from mediagoblin.db.sql.base import Base
from sqlalchemy import (
- Column, Integer, Unicode, UnicodeText, DateTime, Boolean, ForeignKey,
- UniqueConstraint)
+ Column, Integer, ForeignKey)
+from sqlalchemy.orm import relationship, backref
class AsciiData(Base):
@@ -28,6 +28,8 @@ class AsciiData(Base):
# The primary key *and* reference to the main media_entry
media_entry = Column(Integer, ForeignKey('core__media_entries.id'),
primary_key=True)
+ get_media_entry = relationship("MediaEntry",
+ backref=backref("ascii__media_data", cascade="all, delete-orphan"))
DATA_MODEL = AsciiData
diff --git a/mediagoblin/media_types/image/models.py b/mediagoblin/media_types/image/models.py
index 5eb20ed4..fc518daa 100644
--- a/mediagoblin/media_types/image/models.py
+++ b/mediagoblin/media_types/image/models.py
@@ -19,6 +19,7 @@ from mediagoblin.db.sql.base import Base
from sqlalchemy import (
Column, Integer, Float, ForeignKey)
+from sqlalchemy.orm import relationship, backref
from mediagoblin.db.sql.extratypes import JSONEncoded
@@ -28,6 +29,9 @@ class ImageData(Base):
# The primary key *and* reference to the main media_entry
media_entry = Column(Integer, ForeignKey('core__media_entries.id'),
primary_key=True)
+ get_media_entry = relationship("MediaEntry",
+ backref=backref("image__media_data", cascade="all, delete-orphan"))
+
width = Column(Integer)
height = Column(Integer)
exif_all = Column(JSONEncoded)
diff --git a/mediagoblin/media_types/video/models.py b/mediagoblin/media_types/video/models.py
index cf42b7c8..35ed92bf 100644
--- a/mediagoblin/media_types/video/models.py
+++ b/mediagoblin/media_types/video/models.py
@@ -19,6 +19,7 @@ from mediagoblin.db.sql.base import Base
from sqlalchemy import (
Column, Integer, SmallInteger, ForeignKey)
+from sqlalchemy.orm import relationship, backref
class VideoData(Base):
@@ -27,6 +28,9 @@ class VideoData(Base):
# The primary key *and* reference to the main media_entry
media_entry = Column(Integer, ForeignKey('core__media_entries.id'),
primary_key=True)
+ get_media_entry = relationship("MediaEntry",
+ backref=backref("video__media_data", cascade="all, delete-orphan"))
+
width = Column(SmallInteger)
height = Column(SmallInteger)