src/cm/migrations/0004_uniqueness_to_keys_in_textversion.py
changeset 31 d4eaf4696b08
child 323 addba77f2f90
equal deleted inserted replaced
30:42a64cbffdf5 31:d4eaf4696b08
       
     1 
       
     2 from south.db import db
       
     3 from django.db import models
       
     4 from cm.models import *
       
     5 from cm.models_base import generate_key, KEY_MAX_SIZE
       
     6 
       
     7 class Migration:
       
     8     
       
     9     def forwards(self, orm):
       
    10         "Write your forwards migration here"
       
    11         
       
    12         db.create_index('cm_textversion', ['key', ], unique=True)
       
    13 
       
    14         db.create_index('cm_textversion', ['adminkey', ], unique=True)
       
    15 
       
    16         db.create_unique('cm_textversion', ['key', ])
       
    17 
       
    18         db.create_unique('cm_textversion', ['adminkey', ])
       
    19         
       
    20         
       
    21     def backwards(self, orm):
       
    22         "Write your backwards migration here"
       
    23         
       
    24         db.delete_index('cm_textversion', ['key', ], unique=True)
       
    25 
       
    26         db.delete_index('cm_textversion', ['adminkey', ], unique=True)
       
    27     
       
    28         db.delete_unique('cm_textversion', ['key', ])
       
    29 
       
    30         db.delete_unique('cm_textversion', ['adminkey', ])
       
    31     
       
    32     models = {
       
    33         'auth.group': {
       
    34             'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
       
    35             'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}),
       
    36             'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'blank': 'True'})
       
    37         },
       
    38         'auth.permission': {
       
    39             'Meta': {'unique_together': "(('content_type', 'codename'),)"},
       
    40             'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
       
    41             'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
       
    42             'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
       
    43             'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})
       
    44         },
       
    45         'auth.user': {
       
    46             'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
       
    47             'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}),
       
    48             'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
       
    49             'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'blank': 'True'}),
       
    50             'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
       
    51             'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
       
    52             'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
       
    53             'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
       
    54             'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
       
    55             'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
       
    56             'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
       
    57             'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'blank': 'True'}),
       
    58             'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '75'})
       
    59         },
       
    60         'cm.activity': {
       
    61             'comment': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'to': "orm['cm.Comment']", 'null': 'True', 'blank': 'True'}),
       
    62             'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
       
    63             'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
       
    64             'ip': ('django.db.models.fields.IPAddressField', [], {'default': 'None', 'max_length': '15', 'null': 'True', 'blank': 'True'}),
       
    65             'originator_user': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'related_name': "'originator_activity'", 'null': 'True', 'blank': 'True', 'to': "orm['auth.User']"}),
       
    66             'text': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'to': "orm['cm.Text']", 'null': 'True', 'blank': 'True'}),
       
    67             'text_version': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'to': "orm['cm.TextVersion']", 'null': 'True', 'blank': 'True'}),
       
    68             'type': ('django.db.models.fields.CharField', [], {'max_length': '30'}),
       
    69             'user': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'to': "orm['auth.User']", 'null': 'True', 'blank': 'True'})
       
    70         },
       
    71         'cm.attachment': {
       
    72             'adminkey': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '20', 'db_index': 'True'}),
       
    73             'data': ('django.db.models.fields.files.FileField', [], {'max_length': '1000'}),
       
    74             'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
       
    75             'key': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '20', 'db_index': 'True'}),
       
    76             'text_version': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['cm.TextVersion']"})
       
    77         },
       
    78         'cm.comment': {
       
    79             'adminkey': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '20', 'db_index': 'True'}),
       
    80             'content': ('django.db.models.fields.TextField', [], {}),
       
    81             'content_html': ('django.db.models.fields.TextField', [], {}),
       
    82             'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
       
    83             'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'db_index': 'True', 'blank': 'True'}),
       
    84             'email': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}),
       
    85             'end_offset': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
       
    86             'end_wrapper': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
       
    87             'format': ('django.db.models.fields.CharField', [], {'default': "'markdown'", 'max_length': '20'}),
       
    88             'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
       
    89             'key': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '20', 'db_index': 'True'}),
       
    90             'modified': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}),
       
    91             'name': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}),
       
    92             'reply_to': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['cm.Comment']", 'null': 'True', 'blank': 'True'}),
       
    93             'start_offset': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
       
    94             'start_wrapper': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
       
    95             'state': ('django.db.models.fields.CharField', [], {'max_length': '16'}),
       
    96             'tags': ('tagging.fields.TagField', [], {}),
       
    97             'text_version': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['cm.TextVersion']"}),
       
    98             'title': ('django.db.models.fields.TextField', [], {}),
       
    99             'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True', 'blank': 'True'})
       
   100         },
       
   101         'cm.configuration': {
       
   102             'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
       
   103             'key': ('django.db.models.fields.TextField', [], {}),
       
   104             'raw_value': ('django.db.models.fields.TextField', [], {})
       
   105         },
       
   106         'cm.email': {
       
   107             'bcc': ('django.db.models.fields.TextField', [], {}),
       
   108             'body': ('django.db.models.fields.TextField', [], {}),
       
   109             'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
       
   110             'from_email': ('django.db.models.fields.TextField', [], {}),
       
   111             'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
       
   112             'message': ('django.db.models.fields.TextField', [], {}),
       
   113             'subject': ('django.db.models.fields.TextField', [], {}),
       
   114             'to': ('django.db.models.fields.TextField', [], {})
       
   115         },
       
   116         'cm.notification': {
       
   117             'active': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
       
   118             'adminkey': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '20', 'db_index': 'True'}),
       
   119             'email': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}),
       
   120             'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
       
   121             'key': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '20', 'db_index': 'True'}),
       
   122             'name': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}),
       
   123             'text': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['cm.Text']", 'null': 'True', 'blank': 'True'}),
       
   124             'type': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}),
       
   125             'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True', 'blank': 'True'})
       
   126         },
       
   127         'cm.role': {
       
   128             'anon': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
       
   129             'description': ('django.db.models.fields.TextField', [], {}),
       
   130             'global_scope': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
       
   131             'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
       
   132             'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '50'}),
       
   133             'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']"})
       
   134         },
       
   135         'cm.text': {
       
   136             'adminkey': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '20', 'db_index': 'True'}),
       
   137             'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
       
   138             'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'db_index': 'True', 'blank': 'True'}),
       
   139             'email': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}),
       
   140             'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
       
   141             'key': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '20', 'db_index': 'True'}),
       
   142             'last_text_version': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'related_text'", 'null': 'True', 'to': "orm['cm.TextVersion']"}),
       
   143             'modified': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}),
       
   144             'name': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}),
       
   145             'private_feed_key': ('django.db.models.fields.CharField', [], {'null': 'True', 'default': 'None', 'max_length': '20', 'blank': 'True', 'unique': 'True', 'db_index': 'True'}),
       
   146             'state': ('django.db.models.fields.CharField', [], {'max_length': '16'}),
       
   147             'title': ('django.db.models.fields.TextField', [], {}),
       
   148             'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True', 'blank': 'True'})
       
   149         },
       
   150         'cm.textversion': {
       
   151             'adminkey': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '20', 'db_index': 'True'}),
       
   152             'content': ('django.db.models.fields.TextField', [], {}),
       
   153             'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
       
   154             'email': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}),
       
   155             'format': ('django.db.models.fields.CharField', [], {'default': "'markdown'", 'max_length': '20'}),
       
   156             'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
       
   157             'key': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '20', 'db_index': 'True'}),
       
   158             'mod_posteriori': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
       
   159             'modified': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}),
       
   160             'name': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}),
       
   161             'note': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}),
       
   162             'tags': ('tagging.fields.TagField', [], {'max_length': '1000'}),
       
   163             'text': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['cm.Text']"}),
       
   164             'title': ('django.db.models.fields.TextField', [], {}),
       
   165             'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True', 'blank': 'True'})
       
   166         },
       
   167         'cm.userprofile': {
       
   168             'adminkey': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '20', 'db_index': 'True'}),
       
   169             'allow_contact': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
       
   170             'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
       
   171             'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
       
   172             'is_email_error': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
       
   173             'is_suspended': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
       
   174             'is_temp': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
       
   175             'key': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '20', 'db_index': 'True'}),
       
   176             'modified': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}),
       
   177             'preferred_language': ('django.db.models.fields.CharField', [], {'default': "'en'", 'max_length': '2'}),
       
   178             'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'unique': 'True'})
       
   179         },
       
   180         'cm.userrole': {
       
   181             'Meta': {'unique_together': "(('role', 'user', 'text'),)"},
       
   182             'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
       
   183             'role': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['cm.Role']", 'null': 'True', 'blank': 'True'}),
       
   184             'text': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['cm.Text']", 'null': 'True', 'blank': 'True'}),
       
   185             'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True', 'blank': 'True'})
       
   186         },
       
   187         'contenttypes.contenttype': {
       
   188             'Meta': {'unique_together': "(('app_label', 'model'),)", 'db_table': "'django_content_type'"},
       
   189             'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
       
   190             'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
       
   191             'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
       
   192             'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})
       
   193         }
       
   194     }
       
   195     
       
   196     complete_apps = ['cm']