diff --git a/Dockerfile.synchronizer b/Dockerfile.synchronizer
index e26ec41..44276b1 100644
--- a/Dockerfile.synchronizer
+++ b/Dockerfile.synchronizer
@@ -16,7 +16,7 @@
 
 # xosproject/simpleexampleservice-synchronizer
 
-FROM xosproject/xos-synchronizer-base:2.2.1
+FROM xosproject/xos-synchronizer-base:2.2.5
 
 COPY xos/synchronizer /opt/xos/synchronizers/simpleexampleservice
 COPY VERSION /opt/xos/synchronizers/simpleexampleservice/
diff --git a/xos/synchronizer/migrations/0001_initial.py b/xos/synchronizer/migrations/0001_initial.py
index aa90193..0858628 100644
--- a/xos/synchronizer/migrations/0001_initial.py
+++ b/xos/synchronizer/migrations/0001_initial.py
@@ -11,7 +11,7 @@
 # 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 05:15
 from __future__ import unicode_literals
diff --git a/xos/synchronizer/migrations/0002_auto_20190305_0240.py b/xos/synchronizer/migrations/0002_auto_20190305_0240.py
new file mode 100644
index 0000000..f572b72
--- /dev/null
+++ b/xos/synchronizer/migrations/0002_auto_20190305_0240.py
@@ -0,0 +1,70 @@
+# 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-03-05 07:40
+from __future__ import unicode_literals
+
+from django.db import migrations, models
+import django.utils.timezone
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('simpleexampleservice', '0001_initial'),
+    ]
+
+    operations = [
+        migrations.AlterField(
+            model_name='colornew',
+            name='backend_status',
+            field=models.CharField(blank=True, default=b'Provisioning in progress', max_length=1024),
+        ),
+        migrations.AlterField(
+            model_name='colornew',
+            name='leaf_model_name',
+            field=models.CharField(blank=True, help_text=b'The most specialized model in this chain of inheritance, often defined by a service developer', max_length=1024),
+        ),
+        migrations.AlterField(
+            model_name='colornew',
+            name='updated',
+            field=models.DateTimeField(blank=True, default=django.utils.timezone.now, help_text=b'Time this model was changed by a non-synchronizer'),
+        ),
+        migrations.AlterField(
+            model_name='embeddedimagenew',
+            name='backend_status',
+            field=models.CharField(blank=True, default=b'Provisioning in progress', max_length=1024),
+        ),
+        migrations.AlterField(
+            model_name='embeddedimagenew',
+            name='leaf_model_name',
+            field=models.CharField(blank=True, help_text=b'The most specialized model in this chain of inheritance, often defined by a service developer', max_length=1024),
+        ),
+        migrations.AlterField(
+            model_name='embeddedimagenew',
+            name='updated',
+            field=models.DateTimeField(blank=True, default=django.utils.timezone.now, help_text=b'Time this model was changed by a non-synchronizer'),
+        ),
+        migrations.AlterField(
+            model_name='simpleexampleservice',
+            name='service_secret',
+            field=models.TextField(blank=True, help_text=b'Service Secret to place in a file', null=True),
+        ),
+        migrations.AlterField(
+            model_name='simpleexampleserviceinstance',
+            name='tenant_secret',
+            field=models.TextField(blank=True, help_text=b'Tenant Secret to place in a file', null=True),
+        ),
+    ]
