sql/update_db_00_05_to_00_06.py
author ymh <ymh.work@gmail.com>
Fri, 01 Feb 2013 17:07:26 +0100
changeset 39 4b3c183a1fe4
parent 7 74cc78bbd65f
permissions -rw-r--r--
virtualenv.py forgotten
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
7
74cc78bbd65f Update regards signes for migration to platform instance.
cavaliet
parents:
diff changeset
     1
#! /usr/bin/env python
74cc78bbd65f Update regards signes for migration to platform instance.
cavaliet
parents:
diff changeset
     2
74cc78bbd65f Update regards signes for migration to platform instance.
cavaliet
parents:
diff changeset
     3
from django.core.management import setup_environ
74cc78bbd65f Update regards signes for migration to platform instance.
cavaliet
parents:
diff changeset
     4
from ldtplatform import settings
74cc78bbd65f Update regards signes for migration to platform instance.
cavaliet
parents:
diff changeset
     5
74cc78bbd65f Update regards signes for migration to platform instance.
cavaliet
parents:
diff changeset
     6
setup_environ(settings)
74cc78bbd65f Update regards signes for migration to platform instance.
cavaliet
parents:
diff changeset
     7
74cc78bbd65f Update regards signes for migration to platform instance.
cavaliet
parents:
diff changeset
     8
from django.db import connections
74cc78bbd65f Update regards signes for migration to platform instance.
cavaliet
parents:
diff changeset
     9
import lxml.etree
74cc78bbd65f Update regards signes for migration to platform instance.
cavaliet
parents:
diff changeset
    10
from ldt.ldt_utils.models import Media, Content
74cc78bbd65f Update regards signes for migration to platform instance.
cavaliet
parents:
diff changeset
    11
74cc78bbd65f Update regards signes for migration to platform instance.
cavaliet
parents:
diff changeset
    12
cur = connections['migration_rs'].cursor()
74cc78bbd65f Update regards signes for migration to platform instance.
cavaliet
parents:
diff changeset
    13
74cc78bbd65f Update regards signes for migration to platform instance.
cavaliet
parents:
diff changeset
    14
# Get all "regarssignes" contents
74cc78bbd65f Update regards signes for migration to platform instance.
cavaliet
parents:
diff changeset
    15
cur.execute("SELECT * from ldt_content")
74cc78bbd65f Update regards signes for migration to platform instance.
cavaliet
parents:
diff changeset
    16
rows = cur.fetchall()
74cc78bbd65f Update regards signes for migration to platform instance.
cavaliet
parents:
diff changeset
    17
s = "Show me the databases:\n"
74cc78bbd65f Update regards signes for migration to platform instance.
cavaliet
parents:
diff changeset
    18
for row in rows:
74cc78bbd65f Update regards signes for migration to platform instance.
cavaliet
parents:
diff changeset
    19
    s += "\n   " + str(row)
74cc78bbd65f Update regards signes for migration to platform instance.
cavaliet
parents:
diff changeset
    20
    # (id-0, u'iri_id'-1, u'iri_url'-2, u'videopath'-3, datetime creation_date-4, datetime update_date-5, u'title'-6, description-7, eternal_id-8)
74cc78bbd65f Update regards signes for migration to platform instance.
cavaliet
parents:
diff changeset
    21
    # (1, u'laurentcantet_entrelesmurs', u'laurentcantet_entrelesmurs/laurentcantet_entrelesmurs.iri', u'rtmp://media.iri.centrepompidou.fr/ddc_player/video/regardssignes/', datetime.datetime(2010, 2, 17, 5, 24, 13, 69794, tzinfo=psycopg2.tz.FixedOffsetTimezone(offset=60, name=None)), datetime.datetime(2010, 2, 17, 5, 24, 13, 91656, tzinfo=psycopg2.tz.FixedOffsetTimezone(offset=60, name=None)), u'Entre Les Murs', None, None)
74cc78bbd65f Update regards signes for migration to platform instance.
cavaliet
parents:
diff changeset
    22
    # Get duration from the iri file
74cc78bbd65f Update regards signes for migration to platform instance.
cavaliet
parents:
diff changeset
    23
    prePath = settings.MEDIA_ROOT +  u"ldt/"
74cc78bbd65f Update regards signes for migration to platform instance.
cavaliet
parents:
diff changeset
    24
    doc = lxml.etree.parse(prePath + row[2])
74cc78bbd65f Update regards signes for migration to platform instance.
cavaliet
parents:
diff changeset
    25
    res = doc.xpath("/iri/body/medias/media[@id='video']/video")
74cc78bbd65f Update regards signes for migration to platform instance.
cavaliet
parents:
diff changeset
    26
    if len(res) > 0:
74cc78bbd65f Update regards signes for migration to platform instance.
cavaliet
parents:
diff changeset
    27
        try:
74cc78bbd65f Update regards signes for migration to platform instance.
cavaliet
parents:
diff changeset
    28
            dur = int(res[0].get(u'dur', 0) or 0)
74cc78bbd65f Update regards signes for migration to platform instance.
cavaliet
parents:
diff changeset
    29
        except:
74cc78bbd65f Update regards signes for migration to platform instance.
cavaliet
parents:
diff changeset
    30
            dur = 3600000
74cc78bbd65f Update regards signes for migration to platform instance.
cavaliet
parents:
diff changeset
    31
    else:
74cc78bbd65f Update regards signes for migration to platform instance.
cavaliet
parents:
diff changeset
    32
        dur = 3600000
74cc78bbd65f Update regards signes for migration to platform instance.
cavaliet
parents:
diff changeset
    33
    # Build platform media and platform content from "regarssignes" contents
74cc78bbd65f Update regards signes for migration to platform instance.
cavaliet
parents:
diff changeset
    34
    media = Media.objects.create(external_id=row[8], creation_date=row[4], update_date=row[5], videopath=row[3], duration=dur,
74cc78bbd65f Update regards signes for migration to platform instance.
cavaliet
parents:
diff changeset
    35
                                 description=row[7], title=row[6], src=(row[1] + u".flv"), mimetype_field="('video/x-flv', None)")
74cc78bbd65f Update regards signes for migration to platform instance.
cavaliet
parents:
diff changeset
    36
    media.save()
74cc78bbd65f Update regards signes for migration to platform instance.
cavaliet
parents:
diff changeset
    37
    
74cc78bbd65f Update regards signes for migration to platform instance.
cavaliet
parents:
diff changeset
    38
    content = Content.objects.create(iri_id=row[1], iriurl=row[2], creation_date=row[4], update_date=row[5], title=row[6], description=row[7],
74cc78bbd65f Update regards signes for migration to platform instance.
cavaliet
parents:
diff changeset
    39
                                 content_creation_date=row[4], duration=dur, media_obj=media)
74cc78bbd65f Update regards signes for migration to platform instance.
cavaliet
parents:
diff changeset
    40
    content.save()
74cc78bbd65f Update regards signes for migration to platform instance.
cavaliet
parents:
diff changeset
    41