0003_create_attachment_view.py
4.84 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
# -*- coding: utf-8 -*-
import datetime
from south.db import db
from django.db import connections
from south.v2 import DataMigration
from django.db import models
class Migration(DataMigration):
def forwards(self, orm):
# Selecting trac database
connection = connections['trac']
cursor = connection.cursor()
cursor.execute('''
CREATE OR REPLACE VIEW attachment_view AS SELECT
CONCAT(attachment.type, '/' , attachment.id, '/', attachment.filename) AS url,
attachment.type AS used_by,
attachment.filename AS filename,
attachment.id as attach_id,
(SELECT LOWER(SUBSTRING(attachment.filename FROM '\.(\w+)$'))) AS mimetype,
attachment.author AS author,
attachment.description AS description,
attachment.size AS size,
TIMESTAMP WITH TIME ZONE 'epoch' + (attachment.time/1000000)* INTERVAL '1s' AS created
FROM attachment;
''')
def backwards(self, orm):
# Selecting trac database
connection = connections['trac']
cursor = connection.cursor()
cursor.execute('DROP VIEW IF EXISTS attachment_view;')
models = {
u'proxy.attachment': {
'Meta': {'object_name': 'Attachment', 'db_table': "'attachment'", 'managed': 'False'},
'author': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
'filename': ('django.db.models.fields.TextField', [], {}),
'id': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
'key': ('django.db.models.fields.TextField', [], {'primary_key': 'True'}),
'size': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
'time': ('django.db.models.fields.DateTimeField', [], {'blank': 'True'}),
'type': ('django.db.models.fields.TextField', [], {})
},
u'proxy.revision': {
'Meta': {'object_name': 'Revision', 'db_table': "'revision_view'", 'managed': 'False'},
'author': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
'created': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
'key': ('django.db.models.fields.TextField', [], {'primary_key': 'True'}),
'message': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
'repository_name': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
'rev': ('django.db.models.fields.TextField', [], {'blank': 'True'})
},
u'proxy.ticket': {
'Meta': {'object_name': 'Ticket', 'db_table': "'ticket_view'", 'managed': 'False'},
'author': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
'collaborators': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
'component': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
'created': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
'id': ('django.db.models.fields.IntegerField', [], {'primary_key': 'True'}),
'keywords': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
'milestone': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
'modified': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
'priority': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
'reporter': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
'severity': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
'status': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
'summary': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
'version': ('django.db.models.fields.TextField', [], {'blank': 'True'})
},
u'proxy.wiki': {
'Meta': {'object_name': 'Wiki', 'db_table': "'wiki_view'", 'managed': 'False'},
'author': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
'collaborators': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
'created': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
'modified': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
'name': ('django.db.models.fields.TextField', [], {'primary_key': 'True'}),
'wiki_text': ('django.db.models.fields.TextField', [], {'blank': 'True'})
}
}
complete_apps = ['proxy']
symmetrical = True