1
# Copyright 2005-2011 Canonical Ltd. All rights reserved.
3
# This program is free software: you can redistribute it and/or modify
4
# it under the terms of the GNU Affero General Public License as published by
5
# the Free Software Foundation, either version 3 of the License, or
6
# (at your option) any later version.
8
# This program is distributed in the hope that it will be useful,
9
# but WITHOUT ANY WARRANTY; without even the implied warranty of
10
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11
# GNU Affero General Public License for more details.
13
# You should have received a copy of the GNU Affero General Public License
14
# along with this program. If not, see <http://www.gnu.org/licenses/>.
18
from south.db import db
19
from south.v2 import SchemaMigration
20
from django.db import models
22
class Migration(SchemaMigration):
24
def forwards(self, orm):
26
# Deleting model 'PrefixGroup'
27
db.delete_table('oops_prefixgroup')
29
# Adding model 'Report'
30
db.create_table('oops_report', (
31
('summary', self.gf('django.db.models.fields.CharField')(max_length=20)),
32
('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
33
('name', self.gf('django.db.models.fields.CharField')(unique=True, max_length=20)),
34
('title', self.gf('django.db.models.fields.CharField')(max_length=50)),
35
('active', self.gf('django.db.models.fields.BooleanField')(default=False, blank=True)),
37
db.send_create_signal('oops', ['Report'])
39
# Adding M2M table for field prefixes on 'Report'
40
db.create_table('oops_report_prefixes', (
41
('id', models.AutoField(verbose_name='ID', primary_key=True, auto_created=True)),
42
('report', models.ForeignKey(orm['oops.report'], null=False)),
43
('prefix', models.ForeignKey(orm['oops.prefix'], null=False))
45
db.create_unique('oops_report_prefixes', ['report_id', 'prefix_id'])
47
# Deleting field 'Prefix.group'
48
db.delete_column('oops_prefix', 'group_id')
51
def backwards(self, orm):
53
# Adding model 'PrefixGroup'
54
db.create_table('oops_prefixgroup', (
55
('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
56
('value', self.gf('django.db.models.fields.CharField')(max_length=50, unique=True)),
58
db.send_create_signal('oops', ['PrefixGroup'])
60
# Deleting model 'Report'
61
db.delete_table('oops_report')
63
# Removing M2M table for field prefixes on 'Report'
64
db.delete_table('oops_report_prefixes')
66
# Adding field 'Prefix.group'
67
db.add_column('oops_prefix', 'group', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['oops.PrefixGroup'], null=True), keep_default=False)
72
'Meta': {'object_name': 'AppInstance'},
73
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
74
'title': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '50'})
76
'oops.classification': {
77
'Meta': {'object_name': 'Classification'},
78
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
79
'title': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'})
81
'oops.dboopsrootdirectory': {
82
'Meta': {'object_name': 'DBOopsRootDirectory'},
83
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
84
'last_date': ('django.db.models.fields.DateField', [], {'null': 'True'}),
85
'last_oops': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True'}),
86
'root_dir': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '200'})
89
'Meta': {'unique_together': "(('exception_type', 'exception_value'),)", 'object_name': 'Infestation'},
90
'bug': ('django.db.models.fields.PositiveIntegerField', [], {'null': 'True'}),
91
'exception_type': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
92
'exception_value': ('django.db.models.fields.CharField', [], {'max_length': '1000'}),
93
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
96
'Meta': {'object_name': 'Oops'},
97
'appinstance': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['oops.AppInstance']"}),
98
'classification': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['oops.Classification']", 'null': 'True'}),
99
'date': ('django.db.models.fields.DateTimeField', [], {'db_index': 'True'}),
100
'duration': ('django.db.models.fields.FloatField', [], {'null': 'True'}),
101
'http_method': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True'}),
102
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
103
'informational': ('django.db.models.fields.NullBooleanField', [], {'null': 'True'}),
104
'is_bot': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'db_index': 'True'}),
105
'is_local_referrer': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'db_index': 'True'}),
106
'most_expensive_statement': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'db_index': 'True'}),
107
'oopsid': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '200'}),
108
'oopsinfestation': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['oops.Infestation']"}),
109
'pageid': ('django.db.models.fields.CharField', [], {'max_length': '500'}),
110
'pathname': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '200'}),
111
'prefix': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['oops.Prefix']"}),
112
'referrer': ('django.db.models.fields.URLField', [], {'max_length': '500', 'null': 'True'}),
113
'statements_count': ('django.db.models.fields.PositiveIntegerField', [], {}),
114
'time_is_estimate': ('django.db.models.fields.NullBooleanField', [], {'null': 'True'}),
115
'total_time': ('django.db.models.fields.PositiveIntegerField', [], {}),
116
'url': ('django.db.models.fields.URLField', [], {'max_length': '500', 'null': 'True', 'db_index': 'True'}),
117
'user_agent': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True'})
120
'Meta': {'object_name': 'Prefix'},
121
'appinstance': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['oops.AppInstance']"}),
122
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
123
'value': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '20'})
126
'Meta': {'object_name': 'Project'},
127
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
128
'title': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '200'})
131
'Meta': {'object_name': 'Report'},
132
'active': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
133
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
134
'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '20'}),
135
'prefixes': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['oops.Prefix']"}),
136
'summary': ('django.db.models.fields.CharField', [], {'max_length': '20'}),
137
'title': ('django.db.models.fields.CharField', [], {'max_length': '50'})
141
complete_apps = ['oops']