diff --git a/xos/synchronizer/migrations/0007_auto_20190409_1904.py b/xos/synchronizer/migrations/0007_auto_20190409_1904.py
new file mode 100644
index 0000000..88a626b
--- /dev/null
+++ b/xos/synchronizer/migrations/0007_auto_20190409_1904.py
@@ -0,0 +1,64 @@
+# Copyright 2017-present Open Networking Foundation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# -*- coding: utf-8 -*-
+# Generated by Django 1.11.20 on 2019-04-09 23:04
+from __future__ import unicode_literals
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('rcord', '0006_bandwidth_profiles_required'),
+    ]
+
+    operations = [
+        migrations.AlterField(
+            model_name='bandwidthprofile_decl',
+            name='name',
+            field=models.CharField(help_text=b'Name of bandwidth profile', max_length=256),
+        ),
+        migrations.AlterField(
+            model_name='rcordipaddress_decl',
+            name='description',
+            field=models.TextField(blank=True, help_text=b'A short description of the IP address', null=True),
+        ),
+        migrations.AlterField(
+            model_name='rcordsubscriber_decl',
+            name='circuit_id',
+            field=models.CharField(blank=True, help_text=b'Option 82 Circuit ID for DHCP relay agent', max_length=256, null=True),
+        ),
+        migrations.AlterField(
+            model_name='rcordsubscriber_decl',
+            name='mac_address',
+            field=models.CharField(blank=True, help_text=b'Subscriber MAC Address', max_length=256, null=True),
+        ),
+        migrations.AlterField(
+            model_name='rcordsubscriber_decl',
+            name='nas_port_id',
+            field=models.CharField(blank=True, help_text=b'NAS Port ID used in Radius to identify physical interface used to authenticate subscriber', max_length=256, null=True),
+        ),
+        migrations.AlterField(
+            model_name='rcordsubscriber_decl',
+            name='onu_device',
+            field=models.CharField(help_text=b'ONUDevice serial number', max_length=256),
+        ),
+        migrations.AlterField(
+            model_name='rcordsubscriber_decl',
+            name='remote_id',
+            field=models.CharField(blank=True, help_text=b'Option 82 Remote ID for DHCP relay agent', max_length=256, null=True),
+        ),
+    ]
