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: