source: trunk/sara_cmt/sara_cmt/cluster/migrations/0023_auto__del_unique_interface_hwaddress__add_unique_interface_hwaddress_n.py @ 13029

Last change on this file since 13029 was 13029, checked in by sil, 13 years ago

Changed some constraints for interface-table. See #is:168

File size: 19.0 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        # Removing unique constraint on 'Interface', fields ['hwaddress']
12        db.delete_unique('cluster_interface', ['hwaddress'])
13
14        # Adding unique constraint on 'Interface', fields ['hwaddress', 'network']
15        db.create_unique('cluster_interface', ['hwaddress', 'network_id'])
16
17
18    def backwards(self, orm):
19       
20        # Adding unique constraint on 'Interface', fields ['hwaddress']
21        db.create_unique('cluster_interface', ['hwaddress'])
22
23        # Removing unique constraint on 'Interface', fields ['hwaddress', 'network']
24        db.delete_unique('cluster_interface', ['hwaddress', 'network_id'])
25
26
27    models = {
28        'cluster.address': {
29            'Meta': {'unique_together': "(('address', 'city'),)", 'object_name': 'Address'},
30            'address': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
31            'city': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
32            'country': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'addresses'", 'null': 'True', 'to': "orm['cluster.Country']"}),
33            'created_on': ('django_extensions.db.fields.CreationDateTimeField', [], {'default': 'datetime.datetime.now', 'blank': 'True'}),
34            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
35            'note': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
36            'postalcode': ('django.db.models.fields.CharField', [], {'max_length': '9', 'blank': 'True'}),
37            'tags': ('tagging.fields.TagField', [], {'default': "''"}),
38            'updated_on': ('django_extensions.db.fields.ModificationDateTimeField', [], {'default': 'datetime.datetime.now', 'blank': 'True'})
39        },
40        'cluster.cluster': {
41            'Meta': {'object_name': 'Cluster'},
42            'created_on': ('django_extensions.db.fields.CreationDateTimeField', [], {'default': 'datetime.datetime.now', 'blank': 'True'}),
43            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
44            'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
45            'note': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
46            'tags': ('tagging.fields.TagField', [], {'default': "''"}),
47            'updated_on': ('django_extensions.db.fields.ModificationDateTimeField', [], {'default': 'datetime.datetime.now', 'blank': 'True'})
48        },
49        'cluster.company': {
50            'Meta': {'object_name': 'Company'},
51            'addresses': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'_companies'", 'symmetrical': 'False', 'to': "orm['cluster.Address']"}),
52            'created_on': ('django_extensions.db.fields.CreationDateTimeField', [], {'default': 'datetime.datetime.now', 'blank': 'True'}),
53            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
54            'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
55            'note': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
56            'tags': ('tagging.fields.TagField', [], {'default': "''"}),
57            'updated_on': ('django_extensions.db.fields.ModificationDateTimeField', [], {'default': 'datetime.datetime.now', 'blank': 'True'}),
58            'website': ('django.db.models.fields.URLField', [], {'max_length': '200'})
59        },
60        'cluster.connection': {
61            'Meta': {'unique_together': "(('company', 'name'),)", 'object_name': 'Connection'},
62            'active': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
63            'address': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'connections'", 'null': 'True', 'to': "orm['cluster.Address']"}),
64            'company': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'companies'", 'to': "orm['cluster.Company']"}),
65            'created_on': ('django_extensions.db.fields.CreationDateTimeField', [], {'default': 'datetime.datetime.now', 'blank': 'True'}),
66            'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'null': 'True', 'blank': 'True'}),
67            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
68            'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
69            'note': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
70            'tags': ('tagging.fields.TagField', [], {'default': "''"}),
71            'updated_on': ('django_extensions.db.fields.ModificationDateTimeField', [], {'default': 'datetime.datetime.now', 'blank': 'True'})
72        },
73        'cluster.country': {
74            'Meta': {'object_name': 'Country'},
75            'country_code': ('django.db.models.fields.PositiveIntegerField', [], {'unique': 'True'}),
76            'created_on': ('django_extensions.db.fields.CreationDateTimeField', [], {'default': 'datetime.datetime.now', 'blank': 'True'}),
77            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
78            'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
79            'note': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
80            'tags': ('tagging.fields.TagField', [], {'default': "''"}),
81            'updated_on': ('django_extensions.db.fields.ModificationDateTimeField', [], {'default': 'datetime.datetime.now', 'blank': 'True'})
82        },
83        'cluster.hardwaremodel': {
84            'Meta': {'object_name': 'HardwareModel'},
85            'created_on': ('django_extensions.db.fields.CreationDateTimeField', [], {'default': 'datetime.datetime.now', 'blank': 'True'}),
86            'expansions': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),
87            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
88            'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
89            'note': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
90            'rackspace': ('django.db.models.fields.PositiveIntegerField', [], {}),
91            'tags': ('tagging.fields.TagField', [], {'default': "''"}),
92            'updated_on': ('django_extensions.db.fields.ModificationDateTimeField', [], {'default': 'datetime.datetime.now', 'blank': 'True'}),
93            'vendor': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'model specifications'", 'to': "orm['cluster.Company']"}),
94            'vendorcode': ('django.db.models.fields.CharField', [], {'max_length': '255', 'unique': 'True', 'null': 'True', 'blank': 'True'})
95        },
96        'cluster.hardwareunit': {
97            'Meta': {'unique_together': "(('rack', 'first_slot'),)", 'object_name': 'HardwareUnit'},
98            'cluster': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'hardware'", 'to': "orm['cluster.Cluster']"}),
99            'created_on': ('django_extensions.db.fields.CreationDateTimeField', [], {'default': 'datetime.datetime.now', 'blank': 'True'}),
100            'first_slot': ('django.db.models.fields.PositiveIntegerField', [], {'null': 'True', 'blank': 'True'}),
101            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
102            'label': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
103            'network': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'hardware'", 'symmetrical': 'False', 'through': "orm['cluster.Interface']", 'to': "orm['cluster.Network']"}),
104            'note': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
105            'owner': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'owns'", 'null': 'True', 'to': "orm['cluster.Connection']"}),
106            'rack': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'contents'", 'to': "orm['cluster.Rack']"}),
107            'role': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'hardware'", 'symmetrical': 'False', 'to': "orm['cluster.Role']"}),
108            'seller': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'sold'", 'null': 'True', 'to': "orm['cluster.Connection']"}),
109            'serial_number': ('django.db.models.fields.CharField', [], {'max_length': '255', 'unique': 'True', 'null': 'True', 'blank': 'True'}),
110            'specifications': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'hardware'", 'null': 'True', 'to': "orm['cluster.HardwareModel']"}),
111            'state': ('django.db.models.fields.CharField', [], {'default': "'unknown'", 'max_length': '3', 'null': 'True', 'blank': 'True'}),
112            'tags': ('tagging.fields.TagField', [], {'default': "''"}),
113            'updated_on': ('django_extensions.db.fields.ModificationDateTimeField', [], {'default': 'datetime.datetime.now', 'blank': 'True'}),
114            'warranty': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'hardware'", 'null': 'True', 'to': "orm['cluster.WarrantyContract']"}),
115            'warranty_tag': ('django.db.models.fields.CharField', [], {'max_length': '255', 'unique': 'True', 'null': 'True', 'blank': 'True'})
116        },
117        'cluster.interface': {
118            'Meta': {'unique_together': "(('network', 'ip'), ('network', 'hwaddress'))", 'object_name': 'Interface'},
119            'aliases': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
120            'created_on': ('django_extensions.db.fields.CreationDateTimeField', [], {'default': 'datetime.datetime.now', 'blank': 'True'}),
121            'host': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'interfaces'", 'to': "orm['cluster.HardwareUnit']"}),
122            'hwaddress': ('django.db.models.fields.CharField', [], {'max_length': '17', 'null': 'True', 'blank': 'True'}),
123            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
124            'iftype': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'interfaces'", 'to': "orm['cluster.InterfaceType']"}),
125            'ip': ('django.db.models.fields.IPAddressField', [], {'max_length': '15', 'blank': 'True'}),
126            'label': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
127            'network': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'interfaces'", 'to': "orm['cluster.Network']"}),
128            'note': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
129            'tags': ('tagging.fields.TagField', [], {'default': "''"}),
130            'updated_on': ('django_extensions.db.fields.ModificationDateTimeField', [], {'default': 'datetime.datetime.now', 'blank': 'True'})
131        },
132        'cluster.interfacetype': {
133            'Meta': {'object_name': 'InterfaceType'},
134            'created_on': ('django_extensions.db.fields.CreationDateTimeField', [], {'default': 'datetime.datetime.now', 'blank': 'True'}),
135            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
136            'label': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
137            'note': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
138            'tags': ('tagging.fields.TagField', [], {'default': "''"}),
139            'updated_on': ('django_extensions.db.fields.ModificationDateTimeField', [], {'default': 'datetime.datetime.now', 'blank': 'True'}),
140            'vendor': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'interfaces'", 'null': 'True', 'to': "orm['cluster.Company']"})
141        },
142        'cluster.network': {
143            'Meta': {'object_name': 'Network'},
144            'created_on': ('django_extensions.db.fields.CreationDateTimeField', [], {'default': 'datetime.datetime.now', 'blank': 'True'}),
145            'domain': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
146            'gateway': ('django.db.models.fields.IPAddressField', [], {'max_length': '15', 'blank': 'True'}),
147            'hostnames': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
148            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
149            'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
150            'netaddress': ('django.db.models.fields.IPAddressField', [], {'max_length': '15'}),
151            'netmask': ('django.db.models.fields.IPAddressField', [], {'max_length': '15'}),
152            'note': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
153            'tags': ('tagging.fields.TagField', [], {'default': "''"}),
154            'updated_on': ('django_extensions.db.fields.ModificationDateTimeField', [], {'default': 'datetime.datetime.now', 'blank': 'True'}),
155            'vlan': ('django.db.models.fields.PositiveIntegerField', [], {'max_length': '3', 'null': 'True', 'blank': 'True'})
156        },
157        'cluster.rack': {
158            'Meta': {'unique_together': "(('room', 'label'),)", 'object_name': 'Rack'},
159            'capacity': ('django.db.models.fields.PositiveIntegerField', [], {}),
160            'created_on': ('django_extensions.db.fields.CreationDateTimeField', [], {'default': 'datetime.datetime.now', 'blank': 'True'}),
161            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
162            'label': ('django.db.models.fields.SlugField', [], {'max_length': '255', 'db_index': 'True'}),
163            'note': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
164            'room': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'racks'", 'to': "orm['cluster.Room']"}),
165            'tags': ('tagging.fields.TagField', [], {'default': "''"}),
166            'updated_on': ('django_extensions.db.fields.ModificationDateTimeField', [], {'default': 'datetime.datetime.now', 'blank': 'True'})
167        },
168        'cluster.role': {
169            'Meta': {'object_name': 'Role'},
170            'created_on': ('django_extensions.db.fields.CreationDateTimeField', [], {'default': 'datetime.datetime.now', 'blank': 'True'}),
171            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
172            'label': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
173            'note': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
174            'tags': ('tagging.fields.TagField', [], {'default': "''"}),
175            'updated_on': ('django_extensions.db.fields.ModificationDateTimeField', [], {'default': 'datetime.datetime.now', 'blank': 'True'})
176        },
177        'cluster.room': {
178            'Meta': {'unique_together': "(('address', 'floor', 'label'),)", 'object_name': 'Room'},
179            'address': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'rooms'", 'to': "orm['cluster.Address']"}),
180            'created_on': ('django_extensions.db.fields.CreationDateTimeField', [], {'default': 'datetime.datetime.now', 'blank': 'True'}),
181            'floor': ('django.db.models.fields.IntegerField', [], {'max_length': '2'}),
182            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
183            'label': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
184            'note': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
185            'tags': ('tagging.fields.TagField', [], {'default': "''"}),
186            'updated_on': ('django_extensions.db.fields.ModificationDateTimeField', [], {'default': 'datetime.datetime.now', 'blank': 'True'})
187        },
188        'cluster.telephonenumber': {
189            'Meta': {'object_name': 'Telephonenumber'},
190            'areacode': ('django.db.models.fields.CharField', [], {'max_length': '4'}),
191            'connection': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'telephone_numbers'", 'to': "orm['cluster.Connection']"}),
192            'country': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'telephone_numbers'", 'to': "orm['cluster.Country']"}),
193            'created_on': ('django_extensions.db.fields.CreationDateTimeField', [], {'default': 'datetime.datetime.now', 'blank': 'True'}),
194            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
195            'note': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
196            'number_type': ('django.db.models.fields.CharField', [], {'max_length': '1'}),
197            'subscriber_number': ('django.db.models.fields.IntegerField', [], {'max_length': '15'}),
198            'tags': ('tagging.fields.TagField', [], {'default': "''"}),
199            'updated_on': ('django_extensions.db.fields.ModificationDateTimeField', [], {'default': 'datetime.datetime.now', 'blank': 'True'})
200        },
201        'cluster.warrantycontract': {
202            'Meta': {'object_name': 'WarrantyContract'},
203            'annual_cost': ('django.db.models.fields.DecimalField', [], {'null': 'True', 'max_digits': '8', 'decimal_places': '2', 'blank': 'True'}),
204            'contract_number': ('django.db.models.fields.CharField', [], {'max_length': '255', 'unique': 'True', 'null': 'True', 'blank': 'True'}),
205            'created_on': ('django_extensions.db.fields.CreationDateTimeField', [], {'default': 'datetime.datetime.now', 'blank': 'True'}),
206            'date_from': ('django.db.models.fields.DateField', [], {}),
207            'date_to': ('django.db.models.fields.DateField', [], {}),
208            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
209            'label': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
210            'note': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
211            'tags': ('tagging.fields.TagField', [], {'default': "''"}),
212            'updated_on': ('django_extensions.db.fields.ModificationDateTimeField', [], {'default': 'datetime.datetime.now', 'blank': 'True'}),
213            'warranty_type': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'contracts'", 'null': 'True', 'to': "orm['cluster.WarrantyType']"})
214        },
215        'cluster.warrantytype': {
216            'Meta': {'object_name': 'WarrantyType'},
217            'contact': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'warranty types'", 'to': "orm['cluster.Connection']"}),
218            'created_on': ('django_extensions.db.fields.CreationDateTimeField', [], {'default': 'datetime.datetime.now', 'blank': 'True'}),
219            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
220            'label': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
221            'note': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
222            'tags': ('tagging.fields.TagField', [], {'default': "''"}),
223            'updated_on': ('django_extensions.db.fields.ModificationDateTimeField', [], {'default': 'datetime.datetime.now', 'blank': 'True'})
224        }
225    }
226
227    complete_apps = ['cluster']
Note: See TracBrowser for help on using the repository browser.