diff --git a/xos/synchronizer/migrations/0002_auto.py b/xos/synchronizer/migrations/0002_auto.py
new file mode 100644
index 0000000..028b5cb
--- /dev/null
+++ b/xos/synchronizer/migrations/0002_auto.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.11 on 2020-11-21 07:39
+from __future__ import unicode_literals
+
+import core.models.xosbase_header
+from django.db import migrations, models
+import django.db.models.deletion
+import django.utils.timezone
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('ntt-workflow-driver', '0001_initial'),
+    ]
+
+    operations = [
+
+        migrations.RemoveField(
+            model_name='nttworkflowdriverserviceinstance',
+            name='pppoe_state',
+        ),
+        migrations.RemoveField(
+            model_name='nttworkflowdriverserviceinstance',
+            name='pppoe_session_id',
+        ),
+        migrations.RemoveField(
+            model_name='nttworkflowdriverserviceinstance',
+            name='ipcp_state',
+        ),
+        migrations.RemoveField(
+            model_name='nttworkflowdriverserviceinstance',
+            name='ip_address',
+        ),
+
+        migrations.CreateModel(
+            name='NttWorkflowDriverOltInformation',
+            fields=[
+                ('serviceinstance_decl_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='core.ServiceInstance_decl')),
+                ('of_dpid', models.CharField(help_text=b'OLT MAC address', max_length=256)),
+                ('olt_location', models.CharField(blank=True, help_text=b'OLT location', max_length=254, null=True)),
+                ('olt_package', models.CharField(blank=True, help_text=b'Package', max_length=254, null=True)),
+                ('port_no', models.IntegerField(blank=True, help_text=b'Port number', null=True)),
+            ],
+            options={
+                'verbose_name': 'NttWorkflowDriver Olt Information',
+            },
+            bases=('core.serviceinstance',),
+        ),
+    ]
\ No newline at end of file
