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.
This commit is contained in:
Elrond 2012-03-28 13:19:11 +02:00
parent 352a180765
commit 02f07bfe14
3 changed files with 12 additions and 2 deletions

View File

@ -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

View File

@ -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)

View File

@ -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)