Просмотр исходного кода

Created migrations for transition to Unicode literals

Jeremy Stretch 8 лет назад
Родитель
Сommit
138cbf9761

+ 81 - 0
netbox/circuits/migrations/0009_unicode_literals.py

@@ -0,0 +1,81 @@
+# -*- coding: utf-8 -*-
+# Generated by Django 1.11 on 2017-05-24 15:34
+from __future__ import unicode_literals
+
+import dcim.fields
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('circuits', '0008_circuittermination_interface_protect_on_delete'),
+    ]
+
+    operations = [
+        migrations.AlterField(
+            model_name='circuit',
+            name='cid',
+            field=models.CharField(max_length=50, verbose_name='Circuit ID'),
+        ),
+        migrations.AlterField(
+            model_name='circuit',
+            name='commit_rate',
+            field=models.PositiveIntegerField(blank=True, null=True, verbose_name='Commit rate (Kbps)'),
+        ),
+        migrations.AlterField(
+            model_name='circuit',
+            name='install_date',
+            field=models.DateField(blank=True, null=True, verbose_name='Date installed'),
+        ),
+        migrations.AlterField(
+            model_name='circuittermination',
+            name='port_speed',
+            field=models.PositiveIntegerField(verbose_name='Port speed (Kbps)'),
+        ),
+        migrations.AlterField(
+            model_name='circuittermination',
+            name='pp_info',
+            field=models.CharField(blank=True, max_length=100, verbose_name='Patch panel/port(s)'),
+        ),
+        migrations.AlterField(
+            model_name='circuittermination',
+            name='term_side',
+            field=models.CharField(choices=[('A', 'A'), ('Z', 'Z')], max_length=1, verbose_name='Termination'),
+        ),
+        migrations.AlterField(
+            model_name='circuittermination',
+            name='upstream_speed',
+            field=models.PositiveIntegerField(blank=True, help_text='Upstream speed, if different from port speed', null=True, verbose_name='Upstream speed (Kbps)'),
+        ),
+        migrations.AlterField(
+            model_name='circuittermination',
+            name='xconnect_id',
+            field=models.CharField(blank=True, max_length=50, verbose_name='Cross-connect ID'),
+        ),
+        migrations.AlterField(
+            model_name='provider',
+            name='account',
+            field=models.CharField(blank=True, max_length=30, verbose_name='Account number'),
+        ),
+        migrations.AlterField(
+            model_name='provider',
+            name='admin_contact',
+            field=models.TextField(blank=True, verbose_name='Admin contact'),
+        ),
+        migrations.AlterField(
+            model_name='provider',
+            name='asn',
+            field=dcim.fields.ASNField(blank=True, null=True, verbose_name='ASN'),
+        ),
+        migrations.AlterField(
+            model_name='provider',
+            name='noc_contact',
+            field=models.TextField(blank=True, verbose_name='NOC contact'),
+        ),
+        migrations.AlterField(
+            model_name='provider',
+            name='portal_url',
+            field=models.URLField(blank=True, verbose_name='Portal'),
+        ),
+    ]

+ 209 - 0
netbox/dcim/migrations/0037_unicode_literals.py

@@ -0,0 +1,209 @@
+# -*- coding: utf-8 -*-
+# Generated by Django 1.11 on 2017-05-24 15:34
+from __future__ import unicode_literals
+
+import dcim.fields
+import django.core.validators
+from django.db import migrations, models
+import django.db.models.deletion
+import utilities.fields
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('dcim', '0036_add_ff_juniper_vcp'),
+    ]
+
+    operations = [
+        migrations.AlterField(
+            model_name='consoleport',
+            name='connection_status',
+            field=models.NullBooleanField(choices=[[False, 'Planned'], [True, 'Connected']], default=True),
+        ),
+        migrations.AlterField(
+            model_name='consoleport',
+            name='cs_port',
+            field=models.OneToOneField(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='connected_console', to='dcim.ConsoleServerPort', verbose_name='Console server port'),
+        ),
+        migrations.AlterField(
+            model_name='device',
+            name='asset_tag',
+            field=utilities.fields.NullableCharField(blank=True, help_text='A unique tag used to identify this device', max_length=50, null=True, unique=True, verbose_name='Asset tag'),
+        ),
+        migrations.AlterField(
+            model_name='device',
+            name='face',
+            field=models.PositiveSmallIntegerField(blank=True, choices=[[0, 'Front'], [1, 'Rear']], null=True, verbose_name='Rack face'),
+        ),
+        migrations.AlterField(
+            model_name='device',
+            name='position',
+            field=models.PositiveSmallIntegerField(blank=True, help_text='The lowest-numbered unit occupied by the device', null=True, validators=[django.core.validators.MinValueValidator(1)], verbose_name='Position (U)'),
+        ),
+        migrations.AlterField(
+            model_name='device',
+            name='primary_ip4',
+            field=models.OneToOneField(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='primary_ip4_for', to='ipam.IPAddress', verbose_name='Primary IPv4'),
+        ),
+        migrations.AlterField(
+            model_name='device',
+            name='primary_ip6',
+            field=models.OneToOneField(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='primary_ip6_for', to='ipam.IPAddress', verbose_name='Primary IPv6'),
+        ),
+        migrations.AlterField(
+            model_name='device',
+            name='serial',
+            field=models.CharField(blank=True, max_length=50, verbose_name='Serial number'),
+        ),
+        migrations.AlterField(
+            model_name='device',
+            name='status',
+            field=models.PositiveSmallIntegerField(choices=[[1, 'Active'], [0, 'Offline'], [2, 'Planned'], [3, 'Staged'], [4, 'Failed'], [5, 'Inventory']], default=1, verbose_name='Status'),
+        ),
+        migrations.AlterField(
+            model_name='devicebay',
+            name='name',
+            field=models.CharField(max_length=50, verbose_name='Name'),
+        ),
+        migrations.AlterField(
+            model_name='devicetype',
+            name='interface_ordering',
+            field=models.PositiveSmallIntegerField(choices=[[1, 'Slot/position'], [2, 'Name (alphabetically)']], default=1),
+        ),
+        migrations.AlterField(
+            model_name='devicetype',
+            name='is_console_server',
+            field=models.BooleanField(default=False, help_text='This type of device has console server ports', verbose_name='Is a console server'),
+        ),
+        migrations.AlterField(
+            model_name='devicetype',
+            name='is_full_depth',
+            field=models.BooleanField(default=True, help_text='Device consumes both front and rear rack faces', verbose_name='Is full depth'),
+        ),
+        migrations.AlterField(
+            model_name='devicetype',
+            name='is_network_device',
+            field=models.BooleanField(default=True, help_text='This type of device has network interfaces', verbose_name='Is a network device'),
+        ),
+        migrations.AlterField(
+            model_name='devicetype',
+            name='is_pdu',
+            field=models.BooleanField(default=False, help_text='This type of device has power outlets', verbose_name='Is a PDU'),
+        ),
+        migrations.AlterField(
+            model_name='devicetype',
+            name='part_number',
+            field=models.CharField(blank=True, help_text='Discrete part number (optional)', max_length=50),
+        ),
+        migrations.AlterField(
+            model_name='devicetype',
+            name='subdevice_role',
+            field=models.NullBooleanField(choices=[(None, 'None'), (True, 'Parent'), (False, 'Child')], default=None, help_text='Parent devices house child devices in device bays. Select "None" if this device type is neither a parent nor a child.', verbose_name='Parent/child status'),
+        ),
+        migrations.AlterField(
+            model_name='devicetype',
+            name='u_height',
+            field=models.PositiveSmallIntegerField(default=1, verbose_name='Height (U)'),
+        ),
+        migrations.AlterField(
+            model_name='interface',
+            name='form_factor',
+            field=models.PositiveSmallIntegerField(choices=[['Virtual interfaces', [[0, 'Virtual'], [200, 'Link Aggregation Group (LAG)']]], ['Ethernet (fixed)', [[800, '100BASE-TX (10/100ME)'], [1000, '1000BASE-T (1GE)'], [1150, '10GBASE-T (10GE)']]], ['Ethernet (modular)', [[1050, 'GBIC (1GE)'], [1100, 'SFP (1GE)'], [1200, 'SFP+ (10GE)'], [1300, 'XFP (10GE)'], [1310, 'XENPAK (10GE)'], [1320, 'X2 (10GE)'], [1350, 'SFP28 (25GE)'], [1400, 'QSFP+ (40GE)'], [1500, 'CFP (100GE)'], [1600, 'QSFP28 (100GE)']]], ['FibreChannel', [[3010, 'SFP (1GFC)'], [3020, 'SFP (2GFC)'], [3040, 'SFP (4GFC)'], [3080, 'SFP+ (8GFC)'], [3160, 'SFP+ (16GFC)']]], ['Serial', [[4000, 'T1 (1.544 Mbps)'], [4010, 'E1 (2.048 Mbps)'], [4040, 'T3 (45 Mbps)'], [4050, 'E3 (34 Mbps)'], [4050, 'E3 (34 Mbps)']]], ['Stacking', [[5000, 'Cisco StackWise'], [5050, 'Cisco StackWise Plus'], [5100, 'Cisco FlexStack'], [5150, 'Cisco FlexStack Plus'], [5200, 'Juniper VCP']]], ['Other', [[32767, 'Other']]]], default=1200),
+        ),
+        migrations.AlterField(
+            model_name='interface',
+            name='lag',
+            field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='member_interfaces', to='dcim.Interface', verbose_name='Parent LAG'),
+        ),
+        migrations.AlterField(
+            model_name='interface',
+            name='mac_address',
+            field=dcim.fields.MACAddressField(blank=True, null=True, verbose_name='MAC Address'),
+        ),
+        migrations.AlterField(
+            model_name='interface',
+            name='mgmt_only',
+            field=models.BooleanField(default=False, help_text='This interface is used only for out-of-band management', verbose_name='OOB Management'),
+        ),
+        migrations.AlterField(
+            model_name='interfaceconnection',
+            name='connection_status',
+            field=models.BooleanField(choices=[[False, 'Planned'], [True, 'Connected']], default=True, verbose_name='Status'),
+        ),
+        migrations.AlterField(
+            model_name='interfacetemplate',
+            name='form_factor',
+            field=models.PositiveSmallIntegerField(choices=[['Virtual interfaces', [[0, 'Virtual'], [200, 'Link Aggregation Group (LAG)']]], ['Ethernet (fixed)', [[800, '100BASE-TX (10/100ME)'], [1000, '1000BASE-T (1GE)'], [1150, '10GBASE-T (10GE)']]], ['Ethernet (modular)', [[1050, 'GBIC (1GE)'], [1100, 'SFP (1GE)'], [1200, 'SFP+ (10GE)'], [1300, 'XFP (10GE)'], [1310, 'XENPAK (10GE)'], [1320, 'X2 (10GE)'], [1350, 'SFP28 (25GE)'], [1400, 'QSFP+ (40GE)'], [1500, 'CFP (100GE)'], [1600, 'QSFP28 (100GE)']]], ['FibreChannel', [[3010, 'SFP (1GFC)'], [3020, 'SFP (2GFC)'], [3040, 'SFP (4GFC)'], [3080, 'SFP+ (8GFC)'], [3160, 'SFP+ (16GFC)']]], ['Serial', [[4000, 'T1 (1.544 Mbps)'], [4010, 'E1 (2.048 Mbps)'], [4040, 'T3 (45 Mbps)'], [4050, 'E3 (34 Mbps)'], [4050, 'E3 (34 Mbps)']]], ['Stacking', [[5000, 'Cisco StackWise'], [5050, 'Cisco StackWise Plus'], [5100, 'Cisco FlexStack'], [5150, 'Cisco FlexStack Plus'], [5200, 'Juniper VCP']]], ['Other', [[32767, 'Other']]]], default=1200),
+        ),
+        migrations.AlterField(
+            model_name='interfacetemplate',
+            name='mgmt_only',
+            field=models.BooleanField(default=False, verbose_name='Management only'),
+        ),
+        migrations.AlterField(
+            model_name='inventoryitem',
+            name='discovered',
+            field=models.BooleanField(default=False, verbose_name='Discovered'),
+        ),
+        migrations.AlterField(
+            model_name='inventoryitem',
+            name='name',
+            field=models.CharField(max_length=50, verbose_name='Name'),
+        ),
+        migrations.AlterField(
+            model_name='inventoryitem',
+            name='part_id',
+            field=models.CharField(blank=True, max_length=50, verbose_name='Part ID'),
+        ),
+        migrations.AlterField(
+            model_name='inventoryitem',
+            name='serial',
+            field=models.CharField(blank=True, max_length=50, verbose_name='Serial number'),
+        ),
+        migrations.AlterField(
+            model_name='platform',
+            name='rpc_client',
+            field=models.CharField(blank=True, choices=[['juniper-junos', 'Juniper Junos (NETCONF)'], ['cisco-ios', 'Cisco IOS (SSH)'], ['opengear', 'Opengear (SSH)']], max_length=30, verbose_name='RPC client'),
+        ),
+        migrations.AlterField(
+            model_name='powerport',
+            name='connection_status',
+            field=models.NullBooleanField(choices=[[False, 'Planned'], [True, 'Connected']], default=True),
+        ),
+        migrations.AlterField(
+            model_name='rack',
+            name='desc_units',
+            field=models.BooleanField(default=False, help_text='Units are numbered top-to-bottom', verbose_name='Descending units'),
+        ),
+        migrations.AlterField(
+            model_name='rack',
+            name='facility_id',
+            field=utilities.fields.NullableCharField(blank=True, max_length=30, null=True, verbose_name='Facility ID'),
+        ),
+        migrations.AlterField(
+            model_name='rack',
+            name='type',
+            field=models.PositiveSmallIntegerField(blank=True, choices=[(100, '2-post frame'), (200, '4-post frame'), (300, '4-post cabinet'), (1000, 'Wall-mounted frame'), (1100, 'Wall-mounted cabinet')], null=True, verbose_name='Type'),
+        ),
+        migrations.AlterField(
+            model_name='rack',
+            name='u_height',
+            field=models.PositiveSmallIntegerField(default=42, validators=[django.core.validators.MinValueValidator(1), django.core.validators.MaxValueValidator(100)], verbose_name='Height (U)'),
+        ),
+        migrations.AlterField(
+            model_name='rack',
+            name='width',
+            field=models.PositiveSmallIntegerField(choices=[(19, '19 inches'), (23, '23 inches')], default=19, help_text='Rail-to-rail width', verbose_name='Width'),
+        ),
+        migrations.AlterField(
+            model_name='site',
+            name='asn',
+            field=dcim.fields.ASNField(blank=True, null=True, verbose_name='ASN'),
+        ),
+        migrations.AlterField(
+            model_name='site',
+            name='contact_email',
+            field=models.EmailField(blank=True, max_length=254, verbose_name='Contact E-mail'),
+        ),
+    ]

+ 91 - 0
netbox/extras/migrations/0007_unicode_literals.py

@@ -0,0 +1,91 @@
+# -*- coding: utf-8 -*-
+# Generated by Django 1.11 on 2017-05-24 15:34
+from __future__ import unicode_literals
+
+from django.db import migrations, models
+import extras.models
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('extras', '0006_add_imageattachments'),
+    ]
+
+    operations = [
+        migrations.AlterField(
+            model_name='customfield',
+            name='default',
+            field=models.CharField(blank=True, help_text='Default value for the field. Use "true" or "false" for booleans. N/A for selection fields.', max_length=100),
+        ),
+        migrations.AlterField(
+            model_name='customfield',
+            name='is_filterable',
+            field=models.BooleanField(default=True, help_text='This field can be used to filter objects.'),
+        ),
+        migrations.AlterField(
+            model_name='customfield',
+            name='label',
+            field=models.CharField(blank=True, help_text="Name of the field as displayed to users (if not provided, the field's name will be used)", max_length=50),
+        ),
+        migrations.AlterField(
+            model_name='customfield',
+            name='obj_type',
+            field=models.ManyToManyField(help_text='The object(s) to which this field applies.', related_name='custom_fields', to='contenttypes.ContentType', verbose_name='Object(s)'),
+        ),
+        migrations.AlterField(
+            model_name='customfield',
+            name='required',
+            field=models.BooleanField(default=False, help_text='Determines whether this field is required when creating new objects or editing an existing object.'),
+        ),
+        migrations.AlterField(
+            model_name='customfield',
+            name='type',
+            field=models.PositiveSmallIntegerField(choices=[(100, 'Text'), (200, 'Integer'), (300, 'Boolean (true/false)'), (400, 'Date'), (500, 'URL'), (600, 'Selection')], default=100),
+        ),
+        migrations.AlterField(
+            model_name='customfield',
+            name='weight',
+            field=models.PositiveSmallIntegerField(default=100, help_text='Fields with higher weights appear lower in a form'),
+        ),
+        migrations.AlterField(
+            model_name='customfieldchoice',
+            name='weight',
+            field=models.PositiveSmallIntegerField(default=100, help_text='Higher weights appear lower in the list'),
+        ),
+        migrations.AlterField(
+            model_name='graph',
+            name='link',
+            field=models.URLField(blank=True, verbose_name='Link URL'),
+        ),
+        migrations.AlterField(
+            model_name='graph',
+            name='name',
+            field=models.CharField(max_length=100, verbose_name='Name'),
+        ),
+        migrations.AlterField(
+            model_name='graph',
+            name='source',
+            field=models.CharField(max_length=500, verbose_name='Source URL'),
+        ),
+        migrations.AlterField(
+            model_name='graph',
+            name='type',
+            field=models.PositiveSmallIntegerField(choices=[(100, 'Interface'), (200, 'Provider'), (300, 'Site')]),
+        ),
+        migrations.AlterField(
+            model_name='imageattachment',
+            name='image',
+            field=models.ImageField(height_field='image_height', upload_to=extras.models.image_upload, width_field='image_width'),
+        ),
+        migrations.AlterField(
+            model_name='topologymap',
+            name='device_patterns',
+            field=models.TextField(help_text='Identify devices to include in the diagram using regular expressions, one per line. Each line will result in a new tier of the drawing. Separate multiple regexes within a line using semicolons. Devices will be rendered in the order they are defined.'),
+        ),
+        migrations.AlterField(
+            model_name='useraction',
+            name='action',
+            field=models.PositiveSmallIntegerField(choices=[(1, 'created'), (7, 'bulk created'), (2, 'imported'), (3, 'modified'), (4, 'bulk edited'), (5, 'deleted'), (6, 'bulk deleted')]),
+        ),
+    ]

+ 133 - 0
netbox/ipam/migrations/0016_unicode_literals.py

@@ -0,0 +1,133 @@
+# -*- coding: utf-8 -*-
+# Generated by Django 1.11 on 2017-05-24 15:34
+from __future__ import unicode_literals
+
+import django.core.validators
+from django.db import migrations, models
+import django.db.models.deletion
+import ipam.fields
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('ipam', '0015_global_vlans'),
+    ]
+
+    operations = [
+        migrations.AlterField(
+            model_name='aggregate',
+            name='family',
+            field=models.PositiveSmallIntegerField(choices=[(4, 'IPv4'), (6, 'IPv6')]),
+        ),
+        migrations.AlterField(
+            model_name='aggregate',
+            name='rir',
+            field=models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='aggregates', to='ipam.RIR', verbose_name='RIR'),
+        ),
+        migrations.AlterField(
+            model_name='ipaddress',
+            name='address',
+            field=ipam.fields.IPAddressField(help_text='IPv4 or IPv6 address (with mask)'),
+        ),
+        migrations.AlterField(
+            model_name='ipaddress',
+            name='family',
+            field=models.PositiveSmallIntegerField(choices=[(4, 'IPv4'), (6, 'IPv6')], editable=False),
+        ),
+        migrations.AlterField(
+            model_name='ipaddress',
+            name='nat_inside',
+            field=models.OneToOneField(blank=True, help_text='The IP for which this address is the "outside" IP', null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='nat_outside', to='ipam.IPAddress', verbose_name='NAT (Inside)'),
+        ),
+        migrations.AlterField(
+            model_name='ipaddress',
+            name='status',
+            field=models.PositiveSmallIntegerField(choices=[(1, 'Active'), (2, 'Reserved'), (3, 'Deprecated'), (5, 'DHCP')], default=1, verbose_name='Status'),
+        ),
+        migrations.AlterField(
+            model_name='ipaddress',
+            name='vrf',
+            field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.PROTECT, related_name='ip_addresses', to='ipam.VRF', verbose_name='VRF'),
+        ),
+        migrations.AlterField(
+            model_name='prefix',
+            name='family',
+            field=models.PositiveSmallIntegerField(choices=[(4, 'IPv4'), (6, 'IPv6')], editable=False),
+        ),
+        migrations.AlterField(
+            model_name='prefix',
+            name='is_pool',
+            field=models.BooleanField(default=False, help_text='All IP addresses within this prefix are considered usable', verbose_name='Is a pool'),
+        ),
+        migrations.AlterField(
+            model_name='prefix',
+            name='prefix',
+            field=ipam.fields.IPNetworkField(help_text='IPv4 or IPv6 network with mask'),
+        ),
+        migrations.AlterField(
+            model_name='prefix',
+            name='role',
+            field=models.ForeignKey(blank=True, help_text='The primary function of this prefix', null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='prefixes', to='ipam.Role'),
+        ),
+        migrations.AlterField(
+            model_name='prefix',
+            name='status',
+            field=models.PositiveSmallIntegerField(choices=[(0, 'Container'), (1, 'Active'), (2, 'Reserved'), (3, 'Deprecated')], default=1, help_text='Operational status of this prefix', verbose_name='Status'),
+        ),
+        migrations.AlterField(
+            model_name='prefix',
+            name='vlan',
+            field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.PROTECT, related_name='prefixes', to='ipam.VLAN', verbose_name='VLAN'),
+        ),
+        migrations.AlterField(
+            model_name='prefix',
+            name='vrf',
+            field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.PROTECT, related_name='prefixes', to='ipam.VRF', verbose_name='VRF'),
+        ),
+        migrations.AlterField(
+            model_name='rir',
+            name='is_private',
+            field=models.BooleanField(default=False, help_text='IP space managed by this RIR is considered private', verbose_name='Private'),
+        ),
+        migrations.AlterField(
+            model_name='service',
+            name='device',
+            field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='services', to='dcim.Device', verbose_name='device'),
+        ),
+        migrations.AlterField(
+            model_name='service',
+            name='ipaddresses',
+            field=models.ManyToManyField(blank=True, related_name='services', to='ipam.IPAddress', verbose_name='IP addresses'),
+        ),
+        migrations.AlterField(
+            model_name='service',
+            name='port',
+            field=models.PositiveIntegerField(validators=[django.core.validators.MinValueValidator(1), django.core.validators.MaxValueValidator(65535)], verbose_name='Port number'),
+        ),
+        migrations.AlterField(
+            model_name='service',
+            name='protocol',
+            field=models.PositiveSmallIntegerField(choices=[(6, 'TCP'), (17, 'UDP')]),
+        ),
+        migrations.AlterField(
+            model_name='vlan',
+            name='status',
+            field=models.PositiveSmallIntegerField(choices=[(1, 'Active'), (2, 'Reserved'), (3, 'Deprecated')], default=1, verbose_name='Status'),
+        ),
+        migrations.AlterField(
+            model_name='vlan',
+            name='vid',
+            field=models.PositiveSmallIntegerField(validators=[django.core.validators.MinValueValidator(1), django.core.validators.MaxValueValidator(4094)], verbose_name='ID'),
+        ),
+        migrations.AlterField(
+            model_name='vrf',
+            name='enforce_unique',
+            field=models.BooleanField(default=True, help_text='Prevent duplicate prefixes/IP addresses within this VRF', verbose_name='Enforce unique space'),
+        ),
+        migrations.AlterField(
+            model_name='vrf',
+            name='rd',
+            field=models.CharField(max_length=21, unique=True, verbose_name='Route distinguisher'),
+        ),
+    ]

+ 20 - 0
netbox/secrets/migrations/0003_unicode_literals.py

@@ -0,0 +1,20 @@
+# -*- coding: utf-8 -*-
+# Generated by Django 1.11 on 2017-05-24 15:34
+from __future__ import unicode_literals
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('secrets', '0002_userkey_add_session_key'),
+    ]
+
+    operations = [
+        migrations.AlterField(
+            model_name='userkey',
+            name='public_key',
+            field=models.TextField(verbose_name='RSA public key'),
+        ),
+    ]

+ 20 - 0
netbox/tenancy/migrations/0003_unicode_literals.py

@@ -0,0 +1,20 @@
+# -*- coding: utf-8 -*-
+# Generated by Django 1.11 on 2017-05-24 15:34
+from __future__ import unicode_literals
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('tenancy', '0002_tenant_group_optional'),
+    ]
+
+    operations = [
+        migrations.AlterField(
+            model_name='tenant',
+            name='description',
+            field=models.CharField(blank=True, help_text='Long-form name (optional)', max_length=100),
+        ),
+    ]

+ 20 - 0
netbox/users/migrations/0002_unicode_literals.py

@@ -0,0 +1,20 @@
+# -*- coding: utf-8 -*-
+# Generated by Django 1.11 on 2017-05-24 15:34
+from __future__ import unicode_literals
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('users', '0001_api_tokens'),
+    ]
+
+    operations = [
+        migrations.AlterField(
+            model_name='token',
+            name='write_enabled',
+            field=models.BooleanField(default=True, help_text='Permit create/update/delete operations using this key'),
+        ),
+    ]