Statistics
| Branch: | Tag: | Revision:

root / peers / migrations / 0002_auto__chg_field_peer_peer_id.py @ bff77975

History | View | Annotate | Download (2.7 kB)

1
# -*- coding: utf-8 -*-
2
import datetime
3
from south.db import db
4
from south.v2 import SchemaMigration
5
from django.db import models
6

    
7

    
8
# Probably due to a MySQL bug, the AutoField is not created properly and raises a 
9
# "Warning 1364: Field 'peer_id' doesn't have a default value" exception on inserts via Django admin.
10
# This does not make sense... No exception comes up once insterts are done via MySQL cli or phpmyadmin
11
# What seems to cause this issue is a South generated sql query: 
12
# ALTER TABLE `peer` ALTER COLUMN `peer_id` DROP DEFAULT;
13
# will have to override _alter_set_defaults
14
def new_alter_columns_set_default(field, name, params, sqls):
15
    return
16

    
17
db._alter_set_defaults = new_alter_columns_set_default
18

    
19
class Migration(SchemaMigration):
20

    
21
    def forwards(self, orm):
22
        
23
        # Changing field 'Peer.peer_id'
24
        db.alter_column(u'peer', 'peer_id', self.gf('django.db.models.fields.AutoField')(primary_key=True))
25

    
26
    def backwards(self, orm):
27

    
28
        # Changing field 'Peer.peer_id'
29
        db.alter_column(u'peer', 'peer_id', self.gf('django.db.models.fields.IntegerField')(primary_key=True))
30

    
31
    models = {
32
        'peers.peer': {
33
            'Meta': {'ordering': "['peer_name']", 'object_name': 'Peer', 'db_table': "u'peer'"},
34
            'domain_name': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True', 'blank': 'True'}),
35
            'networks': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['peers.PeerRange']", 'null': 'True', 'blank': 'True'}),
36
            'peer_as': ('django.db.models.fields.IntegerField', [], {}),
37
            'peer_id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
38
            'peer_name': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
39
            'peer_tag': ('django.db.models.fields.CharField', [], {'max_length': '64'}),
40
            'techc_emails': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['peers.TechcEmail']", 'null': 'True', 'blank': 'True'})
41
        },
42
        'peers.peerrange': {
43
            'Meta': {'ordering': "['network']", 'object_name': 'PeerRange', 'db_table': "u'peer_range'"},
44
            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
45
            'network': ('django.db.models.fields.CharField', [], {'max_length': '128'})
46
        },
47
        'peers.techcemail': {
48
            'Meta': {'object_name': 'TechcEmail', 'db_table': "'techc_email'"},
49
            'email': ('django.db.models.fields.CharField', [], {'max_length': '352', 'db_column': "'email'"}),
50
            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'})
51
        }
52
    }
53

    
54
    complete_apps = ['peers']