source: asadb/forms/migrations/0011_add_indices.py @ 68c93e8

space-accessstablestage
Last change on this file since 68c93e8 was a03cb61, checked in by ASA Group Database <asa-db@…>, 14 years ago

Add indices to database tables

Fixes ASA Trac #38. Also, makes space-related scripts quick instead of
stupidly slow...

  • Property mode set to 100644
File size: 11.9 KB
Line 
1# encoding: utf-8
2import datetime
3from south.db import db
4from south.v2 import SchemaMigration
5from django.db import models
6
7class Migration(SchemaMigration):
8
9    def forwards(self, orm):
10       
11        # Adding index on 'FYSM', fields ['year']
12        db.create_index('forms_fysm', ['year'])
13
14        # Adding unique constraint on 'FYSMCategory', fields ['slug']
15        db.create_unique('forms_fysmcategory', ['slug'])
16
17        # Adding unique constraint on 'GroupConfirmationCycle', fields ['slug']
18        db.create_unique('forms_groupconfirmationcycle', ['slug'])
19
20
21    def backwards(self, orm):
22       
23        # Removing unique constraint on 'GroupConfirmationCycle', fields ['slug']
24        db.delete_unique('forms_groupconfirmationcycle', ['slug'])
25
26        # Removing unique constraint on 'FYSMCategory', fields ['slug']
27        db.delete_unique('forms_fysmcategory', ['slug'])
28
29        # Removing index on 'FYSM', fields ['year']
30        db.delete_index('forms_fysm', ['year'])
31
32
33    models = {
34        'forms.fysm': {
35            'Meta': {'object_name': 'FYSM'},
36            'categories': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['forms.FYSMCategory']", 'symmetrical': 'False', 'blank': 'True'}),
37            'contact_email': ('django.db.models.fields.EmailField', [], {'max_length': '75'}),
38            'description': ('django.db.models.fields.TextField', [], {}),
39            'display_name': ('django.db.models.fields.CharField', [], {'max_length': '50'}),
40            'group': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['groups.Group']"}),
41            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
42            'join_preview': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forms.PagePreview']", 'null': 'True'}),
43            'join_url': ('django.db.models.fields.URLField', [], {'max_length': '200'}),
44            'logo': ('django.db.models.fields.files.ImageField', [], {'max_length': '100', 'blank': 'True'}),
45            'slide': ('django.db.models.fields.files.ImageField', [], {'default': "''", 'max_length': '100'}),
46            'tags': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),
47            'website': ('django.db.models.fields.URLField', [], {'max_length': '200'}),
48            'year': ('django.db.models.fields.IntegerField', [], {'db_index': 'True'})
49        },
50        'forms.fysmcategory': {
51            'Meta': {'ordering': "['name']", 'object_name': 'FYSMCategory'},
52            'blurb': ('django.db.models.fields.TextField', [], {}),
53            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
54            'name': ('django.db.models.fields.CharField', [], {'max_length': '25'}),
55            'slug': ('django.db.models.fields.SlugField', [], {'unique': 'True', 'max_length': '50', 'db_index': 'True'})
56        },
57        'forms.fysmview': {
58            'Meta': {'object_name': 'FYSMView'},
59            'fysm': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forms.FYSM']", 'null': 'True', 'blank': 'True'}),
60            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
61            'page': ('django.db.models.fields.CharField', [], {'max_length': '20', 'blank': 'True'}),
62            'referer': ('django.db.models.fields.URLField', [], {'max_length': '200', 'null': 'True'}),
63            'source_ip': ('django.db.models.fields.IPAddressField', [], {'max_length': '15'}),
64            'source_user': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
65            'user_agent': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
66            'when': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
67            'year': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'})
68        },
69        'forms.groupconfirmationcycle': {
70            'Meta': {'object_name': 'GroupConfirmationCycle'},
71            'create_date': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
72            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
73            'name': ('django.db.models.fields.CharField', [], {'max_length': '30'}),
74            'slug': ('django.db.models.fields.SlugField', [], {'unique': 'True', 'max_length': '50', 'db_index': 'True'})
75        },
76        'forms.groupmembershipupdate': {
77            'Meta': {'object_name': 'GroupMembershipUpdate'},
78            'email_preface': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
79            'group': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['groups.Group']"}),
80            'group_email': ('django.db.models.fields.EmailField', [], {'max_length': '75'}),
81            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
82            'membership_definition': ('django.db.models.fields.TextField', [], {}),
83            'membership_list': ('django.db.models.fields.TextField', [], {}),
84            'no_discrimination': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
85            'no_hazing': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
86            'num_alum': ('django.db.models.fields.IntegerField', [], {}),
87            'num_grads': ('django.db.models.fields.IntegerField', [], {}),
88            'num_other': ('django.db.models.fields.IntegerField', [], {}),
89            'num_other_affiliate': ('django.db.models.fields.IntegerField', [], {}),
90            'num_undergrads': ('django.db.models.fields.IntegerField', [], {}),
91            'officer_email': ('django.db.models.fields.EmailField', [], {'max_length': '75'}),
92            'update_time': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(1970, 1, 1, 0, 0)'}),
93            'updater_name': ('django.db.models.fields.CharField', [], {'max_length': '30'}),
94            'updater_title': ('django.db.models.fields.CharField', [], {'max_length': '30'})
95        },
96        'forms.pagepreview': {
97            'Meta': {'object_name': 'PagePreview'},
98            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
99            'image': ('django.db.models.fields.files.ImageField', [], {'max_length': '100', 'blank': 'True'}),
100            'update_time': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(1970, 1, 1, 0, 0)'}),
101            'url': ('django.db.models.fields.URLField', [], {'max_length': '200'})
102        },
103        'forms.personmembershipupdate': {
104            'Meta': {'object_name': 'PersonMembershipUpdate'},
105            'cycle': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forms.GroupConfirmationCycle']"}),
106            'deleted': ('django.db.models.fields.DateTimeField', [], {'default': 'None', 'null': 'True', 'blank': 'True'}),
107            'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['groups.Group']", 'symmetrical': 'False'}),
108            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
109            'update_time': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(1970, 1, 1, 0, 0)'}),
110            'username': ('django.db.models.fields.CharField', [], {'max_length': '30'}),
111            'valid': ('django.db.models.fields.IntegerField', [], {'default': '0'})
112        },
113        'groups.activitycategory': {
114            'Meta': {'object_name': 'ActivityCategory'},
115            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
116            'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})
117        },
118        'groups.group': {
119            'Meta': {'ordering': "('name',)", 'object_name': 'Group'},
120            'abbreviation': ('django.db.models.fields.CharField', [], {'db_index': 'True', 'max_length': '10', 'blank': 'True'}),
121            'activity_category': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['groups.ActivityCategory']", 'null': 'True', 'blank': 'True'}),
122            'advisor_name': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),
123            'athena_locker': ('django.db.models.fields.CharField', [], {'max_length': '20', 'blank': 'True'}),
124            'constitution_url': ('django.db.models.fields.CharField', [], {'max_length': '200', 'blank': 'True'}),
125            'description': ('django.db.models.fields.TextField', [], {}),
126            'funding_account_id': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
127            'group_class': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['groups.GroupClass']"}),
128            'group_email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}),
129            'group_funding': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['groups.GroupFunding']", 'null': 'True', 'blank': 'True'}),
130            'group_status': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['groups.GroupStatus']"}),
131            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
132            'main_account_id': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
133            'meeting_times': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
134            'name': ('django.db.models.fields.CharField', [], {'max_length': '100', 'db_index': 'True'}),
135            'num_community': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
136            'num_grads': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
137            'num_other': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
138            'num_undergrads': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
139            'officer_email': ('django.db.models.fields.EmailField', [], {'max_length': '75'}),
140            'recognition_date': ('django.db.models.fields.DateTimeField', [], {}),
141            'update_date': ('django.db.models.fields.DateTimeField', [], {}),
142            'updater': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True'}),
143            'website_url': ('django.db.models.fields.URLField', [], {'max_length': '200'})
144        },
145        'groups.groupclass': {
146            'Meta': {'object_name': 'GroupClass'},
147            'description': ('django.db.models.fields.TextField', [], {}),
148            'gets_publicity': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
149            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
150            'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}),
151            'slug': ('django.db.models.fields.SlugField', [], {'unique': 'True', 'max_length': '50', 'db_index': 'True'})
152        },
153        'groups.groupfunding': {
154            'Meta': {'object_name': 'GroupFunding'},
155            'contact_email': ('django.db.models.fields.EmailField', [], {'max_length': '75'}),
156            'funding_list': ('django.db.models.fields.CharField', [], {'max_length': '32', 'blank': 'True'}),
157            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
158            'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}),
159            'slug': ('django.db.models.fields.SlugField', [], {'unique': 'True', 'max_length': '50', 'db_index': 'True'})
160        },
161        'groups.groupstatus': {
162            'Meta': {'object_name': 'GroupStatus'},
163            'description': ('django.db.models.fields.TextField', [], {}),
164            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
165            'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
166            'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}),
167            'slug': ('django.db.models.fields.SlugField', [], {'unique': 'True', 'max_length': '50', 'db_index': 'True'})
168        }
169    }
170
171    complete_apps = ['forms']
Note: See TracBrowser for help on using the repository browser.