diff --git a/bramble-core/src/main/java/org/briarproject/bramble/db/JdbcDatabase.java b/bramble-core/src/main/java/org/briarproject/bramble/db/JdbcDatabase.java
index 058c33726b37939fe8b90008763d3a40de5471cc..377ba90a318d980fa816d3f0482af47ef0ca3c54 100644
--- a/bramble-core/src/main/java/org/briarproject/bramble/db/JdbcDatabase.java
+++ b/bramble-core/src/main/java/org/briarproject/bramble/db/JdbcDatabase.java
@@ -98,7 +98,7 @@ import static org.briarproject.bramble.util.LogUtils.now;
 abstract class JdbcDatabase implements Database<Connection> {
 
 	// Package access for testing
-	static final int CODE_SCHEMA_VERSION = 46;
+	static final int CODE_SCHEMA_VERSION = 47;
 
 	// Time period offsets for incoming transport keys
 	private static final int OFFSET_PREV = -1;
@@ -135,6 +135,7 @@ abstract class JdbcDatabase implements Database<Connection> {
 					+ " handshakePublicKey _BINARY," // Null if key is unknown
 					+ " localAuthorId _HASH NOT NULL,"
 					+ " verified BOOLEAN NOT NULL,"
+					+ " syncVersions _BINARY DEFAULT '00' NOT NULL,"
 					+ " PRIMARY KEY (contactId),"
 					+ " FOREIGN KEY (localAuthorId)"
 					+ " REFERENCES localAuthors (authorId)"
@@ -461,7 +462,8 @@ abstract class JdbcDatabase implements Database<Connection> {
 				new Migration42_43(dbTypes),
 				new Migration43_44(dbTypes),
 				new Migration44_45(),
-				new Migration45_46()
+				new Migration45_46(),
+				new Migration46_47(dbTypes)
 		);
 	}
 
diff --git a/bramble-core/src/main/java/org/briarproject/bramble/db/Migration46_47.java b/bramble-core/src/main/java/org/briarproject/bramble/db/Migration46_47.java
new file mode 100644
index 0000000000000000000000000000000000000000..da14f5d361b033294a3201218f3c4cd43d018b05
--- /dev/null
+++ b/bramble-core/src/main/java/org/briarproject/bramble/db/Migration46_47.java
@@ -0,0 +1,47 @@
+package org.briarproject.bramble.db;
+
+import org.briarproject.bramble.api.db.DbException;
+
+import java.sql.Connection;
+import java.sql.SQLException;
+import java.sql.Statement;
+import java.util.logging.Logger;
+
+import static java.util.logging.Level.WARNING;
+import static java.util.logging.Logger.getLogger;
+import static org.briarproject.bramble.db.JdbcUtils.tryToClose;
+
+class Migration46_47 implements Migration<Connection> {
+
+	private static final Logger LOG = getLogger(Migration46_47.class.getName());
+
+	private final DatabaseTypes dbTypes;
+
+	Migration46_47(DatabaseTypes dbTypes) {
+		this.dbTypes = dbTypes;
+	}
+
+	@Override
+	public int getStartVersion() {
+		return 46;
+	}
+
+	@Override
+	public int getEndVersion() {
+		return 47;
+	}
+
+	@Override
+	public void migrate(Connection txn) throws DbException {
+		Statement s = null;
+		try {
+			s = txn.createStatement();
+			s.execute(dbTypes.replaceTypes("ALTER TABLE contacts"
+					+ " ADD COLUMN syncVersions"
+					+ " _BINARY DEFAULT '00' NOT NULL"));
+		} catch (SQLException e) {
+			tryToClose(s, LOG, WARNING);
+			throw new DbException(e);
+		}
+	}
+}