diff --git a/sql/database-create.sql b/sql/database-create.sql
index 369c01de0f7608ceb97b81c79edb79eb715fb92a..8c177a104088672ad1c9d35565bf7b26cfbdb096 100644
--- a/sql/database-create.sql
+++ b/sql/database-create.sql
@@ -3809,7 +3809,7 @@ CREATE TABLE `projects` (
   `nonlocal_id` varchar(128) default NULL,
   `nonlocal_type` tinytext,
   `manager_urn` varchar(128) default NULL,
-  `viaAPT` tinyint(1) default '0',
+  `genesis` enum('emulab','aptlab','cloudlab') NOT NULL default 'emulab',
   PRIMARY KEY  (`pid_idx`),
   UNIQUE KEY `pid` (`pid`),
   KEY `unix_gid` (`unix_gid`),
@@ -4575,7 +4575,7 @@ CREATE TABLE `users` (
   `default_project` mediumint(8) unsigned default NULL,
   `nocollabtools` tinyint(1) default '0',
   `initial_passphrase` varchar(128) default NULL,
-  `viaAPT` tinyint(1) default '0',
+  `genesis` enum('emulab','aptlab','cloudlab') NOT NULL default 'emulab',
   PRIMARY KEY  (`uid_idx`),
   KEY `unix_uid` (`unix_uid`),
   KEY `status` (`status`),
diff --git a/sql/updates/4/403 b/sql/updates/4/403
new file mode 100644
index 0000000000000000000000000000000000000000..ceb0743faacd057aa15972628d72ca18449a3dd1
--- /dev/null
+++ b/sql/updates/4/403
@@ -0,0 +1,34 @@
+#
+# Update to projects and users for apt/cloud
+#
+use strict;
+use libdb;
+
+sub DoUpdate($$$)
+{
+    my ($dbhandle, $dbname, $version) = @_;
+
+    if (!DBSlotExists("projects", "genesis")) {
+	DBQueryFatal("ALTER TABLE projects ADD ".
+		     " `genesis` enum('emulab','aptlab','cloudlab') ".
+		     "    NOT NULL default 'emulab'");
+    }
+    if (!DBSlotExists("users", "genesis")) {
+	DBQueryFatal("ALTER TABLE users ADD ".
+		     " `genesis` enum('emulab','aptlab','cloudlab') ".
+		     "    NOT NULL default 'emulab'");
+    }
+    if (DBSlotExists("projects", "viaAPT")) {
+	DBQueryFatal("update projects set genesis='aptlab' where viaAPT=1");
+	DBQueryFatal("ALTER TABLE projects drop viaAPT");
+    }
+    if (DBSlotExists("users", "viaAPT")) {
+	DBQueryFatal("update users set genesis='aptlab' where viaAPT=1");
+	DBQueryFatal("ALTER TABLE users drop viaAPT");
+    }
+    return 0;
+}
+
+# Local Variables:
+# mode:perl
+# End: