diff --git a/Dockerfile.synchronizer b/Dockerfile.synchronizer
index e6c6c50..5913671 100644
--- a/Dockerfile.synchronizer
+++ b/Dockerfile.synchronizer
@@ -16,7 +16,7 @@
 # docker build -t xosproject/rcord-synchronizer:candidate -f Dockerfile.synchronizer .
 
 # xosproject/rcord-synchronizer
-FROM xosproject/xos-synchronizer-base:2.1.38
+FROM xosproject/xos-synchronizer-base:2.1.50
 
 COPY xos/synchronizer /opt/xos/synchronizers/rcord
 COPY VERSION /opt/xos/synchronizers/rcord/
diff --git a/xos/synchronizer/migrations/0001_initial.py b/xos/synchronizer/migrations/0001_initial.py
new file mode 100644
index 0000000..8d52791
--- /dev/null
+++ b/xos/synchronizer/migrations/0001_initial.py
@@ -0,0 +1,140 @@
+# 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 2019-02-21 01:31
+from __future__ import unicode_literals
+
+import core.models.xosbase_header
+from django.conf import settings
+import django.core.validators
+from django.db import migrations, models
+import django.db.models.deletion
+import django.utils.timezone
+
+
+class Migration(migrations.Migration):
+
+    initial = True
+
+    dependencies = [
+        migrations.swappable_dependency(settings.AUTH_USER_MODEL),
+        ('core', '0002_initial_data'),
+    ]
+
+    operations = [
+        migrations.CreateModel(
+            name='RCORDIpAddress_decl',
+            fields=[
+                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
+                ('created', models.DateTimeField(auto_now_add=True, help_text=b'Time this model was created')),
+                ('updated', models.DateTimeField(default=django.utils.timezone.now, help_text=b'Time this model was changed by a non-synchronizer')),
+                ('enacted', models.DateTimeField(blank=True, default=None, help_text=b'When synced, set to the timestamp of the data that was synced', null=True)),
+                ('policed', models.DateTimeField(blank=True, default=None, help_text=b'When policed, set to the timestamp of the data that was policed', null=True)),
+                ('backend_register', models.CharField(blank=True, default=b'{}', max_length=1024, null=True)),
+                ('backend_need_delete', models.BooleanField(default=False)),
+                ('backend_need_reap', models.BooleanField(default=False)),
+                ('backend_status', models.CharField(default=b'Provisioning in progress', max_length=1024, null=True)),
+                ('backend_code', models.IntegerField(default=0)),
+                ('deleted', models.BooleanField(default=False)),
+                ('write_protect', models.BooleanField(default=False)),
+                ('lazy_blocked', models.BooleanField(default=False)),
+                ('no_sync', models.BooleanField(default=False)),
+                ('no_policy', models.BooleanField(default=False)),
+                ('policy_status', models.CharField(blank=True, default=b'Policy in process', max_length=1024, null=True)),
+                ('policy_code', models.IntegerField(blank=True, default=0, null=True)),
+                ('leaf_model_name', models.CharField(help_text=b'The most specialized model in this chain of inheritance, often defined by a service developer', max_length=1024)),
+                ('backend_need_delete_policy', models.BooleanField(default=False, help_text=b'True if delete model_policy must be run before object can be reaped')),
+                ('xos_managed', models.BooleanField(default=True, help_text=b'True if xos is responsible for creating/deleting this object')),
+                ('backend_handle', models.CharField(blank=True, help_text=b'Handle used by the backend to track this object', max_length=1024, null=True)),
+                ('changed_by_step', models.DateTimeField(blank=True, default=None, help_text=b'Time this model was changed by a sync step', null=True)),
+                ('changed_by_policy', models.DateTimeField(blank=True, default=None, help_text=b'Time this model was changed by a model policy', null=True)),
+                ('ip', models.CharField(help_text=b'The unique IP address (either IPv4 or IPv6 / netmask)', max_length=52)),
+                ('description', models.CharField(blank=True, help_text=b'A short description of the IP address', max_length=254, null=True)),
+            ],
+            options={
+                'verbose_name': 'IP address',
+            },
+            bases=(models.Model, core.models.xosbase_header.PlModelMixIn),
+        ),
+        migrations.CreateModel(
+            name='RCORDService_decl',
+            fields=[
+                ('service_decl_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='core.Service_decl')),
+                ('access', models.CharField(choices=[(b'voltha', b'VOLTHA'), (b'unknown', b'Unknown')], default=b'voltha', help_text=b'Name of service that is managing the Access Network', max_length=30)),
+            ],
+            options={
+                'verbose_name': 'RCORD Service',
+            },
+            bases=('core.service',),
+        ),
+        migrations.CreateModel(
+            name='RCORDSubscriber_decl',
+            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')),
+                ('status', core.models.xosbase_header.StrippedCharField(blank=True, choices=[(b'enabled', b'Enabled'), (b'disabled', b'Disabled'), (b'pre-provisioned', b'Pre Provisioned'), (b'awaiting-auth', b'Awaiting Authentication'), (b'auth-failed', b'Authentication Failed')], default=b'enabled', help_text=b'Status of subscriber provisioning and authentication', max_length=30, null=True)),
+                ('c_tag', models.IntegerField(blank=True, help_text=b"Customer VLAN Tag, one half of the double-tag that identifies this subscriber's traffic", null=True, validators=[django.core.validators.MaxValueValidator(4096), django.core.validators.MinValueValidator(0)])),
+                ('s_tag', models.IntegerField(blank=True, help_text=b"Service VLAN Tag, one half of the double-tag that identifies this subscriber's traffic", null=True, validators=[django.core.validators.MaxValueValidator(4096), django.core.validators.MinValueValidator(0)])),
+                ('onu_device', models.TextField(help_text=b'ONUDevice serial number')),
+                ('mac_address', models.TextField(blank=True, help_text=b'Subscriber MAC Address', null=True)),
+                ('nas_port_id', models.TextField(blank=True, help_text=b'NAS Port ID used in Radius to identify physical interface used to authenticate subscriber', null=True)),
+                ('circuit_id', models.TextField(blank=True, help_text=b'Option 82 Circuit ID for DHCP relay agent', null=True)),
+                ('remote_id', models.TextField(blank=True, help_text=b'Option 82 Remote ID for DHCP relay agent', null=True)),
+                ('creator', models.ForeignKey(blank=True, help_text=b'User who created this RCORDSubscriber object', null=True, on_delete=django.db.models.deletion.CASCADE, related_name='created_rcord_subscribers', to=settings.AUTH_USER_MODEL)),
+            ],
+            options={
+                'verbose_name': 'RCORD Subscriber',
+            },
+            bases=('core.serviceinstance',),
+        ),
+        migrations.AddField(
+            model_name='rcordipaddress_decl',
+            name='subscriber',
+            field=models.ForeignKey(help_text=b'The subscriber the IP address belongs to', on_delete=django.db.models.deletion.CASCADE, related_name='ips', to='rcord.RCORDSubscriber_decl'),
+        ),
+        migrations.CreateModel(
+            name='RCORDIpAddress',
+            fields=[
+            ],
+            options={
+                'proxy': True,
+                'indexes': [],
+            },
+            bases=('rcord.rcordipaddress_decl',),
+        ),
+        migrations.CreateModel(
+            name='RCORDService',
+            fields=[
+            ],
+            options={
+                'proxy': True,
+                'indexes': [],
+            },
+            bases=('rcord.rcordservice_decl',),
+        ),
+        migrations.CreateModel(
+            name='RCORDSubscriber',
+            fields=[
+            ],
+            options={
+                'proxy': True,
+                'indexes': [],
+            },
+            bases=('rcord.rcordsubscriber_decl',),
+        ),
+        migrations.AlterUniqueTogether(
+            name='rcordipaddress_decl',
+            unique_together=set([('subscriber', 'ip')]),
+        ),
+    ]
diff --git a/xos/synchronizer/migrations/__init__.py b/xos/synchronizer/migrations/__init__.py
new file mode 100644
index 0000000..eb28b96
--- /dev/null
+++ b/xos/synchronizer/migrations/__init__.py
@@ -0,0 +1,13 @@
+# 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.
\ No newline at end of file
