mbligh | e8819cd | 2008-02-15 16:48:40 +0000 | [diff] [blame] | 1 | import os |
| 2 | |
| 3 | required_tables = ('acl_groups', 'acl_groups_hosts', 'acl_groups_users', |
| 4 | 'autotests', 'host_queue_entries', 'hosts', 'hosts_labels', |
| 5 | 'ineligible_host_queues', 'jobs', 'labels', 'users') |
| 6 | |
| 7 | |
| 8 | def migrate_up(manager): |
mbligh | e8819cd | 2008-02-15 16:48:40 +0000 | [diff] [blame] | 9 | manager.execute("SHOW TABLES") |
| 10 | tables = [row[0] for row in manager.cursor.fetchall()] |
| 11 | db_initialized = True |
| 12 | for table in required_tables: |
| 13 | if table not in tables: |
| 14 | db_initialized = False |
| 15 | break |
| 16 | if not db_initialized: |
| 17 | response = raw_input( |
| 18 | 'Your autotest_web database does not appear to be ' |
| 19 | 'initialized. Do you want to recreate it (this will ' |
| 20 | 'result in loss of any existing data) (yes/No)? ') |
| 21 | if response != 'yes': |
| 22 | raise Exception('User has chosen to abort migration') |
| 23 | |
| 24 | manager.execute_script(CREATE_DB_SQL) |
| 25 | |
| 26 | manager.create_migrate_table() |
| 27 | |
| 28 | |
mbligh | aa383b7 | 2008-03-12 20:11:56 +0000 | [diff] [blame] | 29 | def migrate_down(manager): |
| 30 | manager.execute_script(DROP_DB_SQL) |
| 31 | |
| 32 | |
mbligh | e8819cd | 2008-02-15 16:48:40 +0000 | [diff] [blame] | 33 | CREATE_DB_SQL = """\ |
| 34 | -- |
| 35 | -- Table structure for table `acl_groups` |
| 36 | -- |
| 37 | |
| 38 | DROP TABLE IF EXISTS `acl_groups`; |
| 39 | CREATE TABLE `acl_groups` ( |
| 40 | `id` int(11) NOT NULL auto_increment, |
| 41 | `name` varchar(255) default NULL, |
| 42 | `description` varchar(255) default NULL, |
| 43 | PRIMARY KEY (`id`) |
| 44 | ) ENGINE=InnoDB DEFAULT CHARSET=latin1; |
| 45 | |
| 46 | -- |
| 47 | -- Table structure for table `acl_groups_hosts` |
| 48 | -- |
| 49 | |
| 50 | DROP TABLE IF EXISTS `acl_groups_hosts`; |
| 51 | CREATE TABLE `acl_groups_hosts` ( |
| 52 | `acl_group_id` int(11) default NULL, |
| 53 | `host_id` int(11) default NULL |
| 54 | ) ENGINE=InnoDB DEFAULT CHARSET=latin1; |
| 55 | |
| 56 | -- |
| 57 | -- Table structure for table `acl_groups_users` |
| 58 | -- |
| 59 | |
| 60 | DROP TABLE IF EXISTS `acl_groups_users`; |
| 61 | CREATE TABLE `acl_groups_users` ( |
| 62 | `acl_group_id` int(11) default NULL, |
| 63 | `user_id` int(11) default NULL |
| 64 | ) ENGINE=InnoDB DEFAULT CHARSET=latin1; |
| 65 | |
| 66 | -- |
| 67 | -- Table structure for table `autotests` |
| 68 | -- |
| 69 | |
| 70 | DROP TABLE IF EXISTS `autotests`; |
| 71 | CREATE TABLE `autotests` ( |
| 72 | `id` int(11) NOT NULL auto_increment, |
| 73 | `name` varchar(255) default NULL, |
| 74 | `test_class` varchar(255) default NULL, |
| 75 | `params` varchar(255) default NULL, |
| 76 | `description` text, |
| 77 | `test_type` int(11) default NULL, |
| 78 | `path` varchar(255) default NULL, |
| 79 | PRIMARY KEY (`id`) |
| 80 | ) ENGINE=InnoDB DEFAULT CHARSET=latin1; |
| 81 | |
| 82 | DROP TABLE IF EXISTS `host_queue_entries`; |
| 83 | CREATE TABLE `host_queue_entries` ( |
| 84 | `id` int(11) NOT NULL auto_increment, |
| 85 | `job_id` int(11) default NULL, |
| 86 | `host_id` int(11) default NULL, |
| 87 | `priority` int(11) default NULL, |
| 88 | `status` varchar(255) default NULL, |
| 89 | `created_on` datetime default NULL, |
| 90 | `meta_host` int(11) default NULL, |
| 91 | `active` tinyint(1) default '0', |
| 92 | `complete` tinyint(1) default '0', |
| 93 | PRIMARY KEY (`id`) |
| 94 | ) ENGINE=InnoDB DEFAULT CHARSET=latin1; |
| 95 | |
| 96 | -- |
| 97 | -- Table structure for table `hosts` |
| 98 | -- |
| 99 | |
| 100 | DROP TABLE IF EXISTS `hosts`; |
| 101 | CREATE TABLE `hosts` ( |
| 102 | `id` int(11) NOT NULL auto_increment, |
| 103 | `hostname` varchar(255) default NULL, |
| 104 | `locked` tinyint(1) default '0', |
| 105 | `synch_id` int(11) default NULL, |
| 106 | `status` varchar(255) default NULL, |
| 107 | PRIMARY KEY (`id`) |
| 108 | ) ENGINE=InnoDB DEFAULT CHARSET=latin1; |
| 109 | |
| 110 | -- |
| 111 | -- Table structure for table `hosts_labels` |
| 112 | -- |
| 113 | |
| 114 | DROP TABLE IF EXISTS `hosts_labels`; |
| 115 | CREATE TABLE `hosts_labels` ( |
| 116 | `host_id` int(11) default NULL, |
| 117 | `label_id` int(11) default NULL |
| 118 | ) ENGINE=InnoDB DEFAULT CHARSET=latin1; |
| 119 | |
| 120 | -- |
| 121 | -- Table structure for table `ineligible_host_queues` |
| 122 | -- |
| 123 | |
| 124 | DROP TABLE IF EXISTS `ineligible_host_queues`; |
| 125 | CREATE TABLE `ineligible_host_queues` ( |
| 126 | `id` int(11) NOT NULL auto_increment, |
| 127 | `job_id` int(11) default NULL, |
| 128 | `host_id` int(11) default NULL, |
| 129 | PRIMARY KEY (`id`) |
| 130 | ) ENGINE=InnoDB DEFAULT CHARSET=latin1; |
| 131 | |
| 132 | -- |
| 133 | -- Table structure for table `jobs` |
| 134 | -- |
| 135 | |
| 136 | DROP TABLE IF EXISTS `jobs`; |
| 137 | CREATE TABLE `jobs` ( |
| 138 | `id` int(11) NOT NULL auto_increment, |
| 139 | `owner` varchar(255) default NULL, |
| 140 | `name` varchar(255) default NULL, |
| 141 | `priority` int(11) default NULL, |
| 142 | `control_file` text, |
| 143 | `control_type` int(11) default NULL, |
| 144 | `kernel_url` varchar(255) default NULL, |
| 145 | `status` varchar(255) default NULL, |
| 146 | `created_on` datetime default NULL, |
| 147 | `submitted_on` datetime default NULL, |
| 148 | `synch_type` int(11) default NULL, |
| 149 | `synch_count` int(11) default NULL, |
| 150 | `synchronizing` tinyint(1) default NULL, |
| 151 | PRIMARY KEY (`id`) |
| 152 | ) ENGINE=InnoDB DEFAULT CHARSET=latin1; |
| 153 | |
| 154 | -- |
| 155 | -- Table structure for table `labels` |
| 156 | -- |
| 157 | |
| 158 | DROP TABLE IF EXISTS `labels`; |
| 159 | CREATE TABLE `labels` ( |
| 160 | `id` int(11) NOT NULL auto_increment, |
| 161 | `name` varchar(255) default NULL, |
| 162 | `kernel_config` varchar(255) default NULL, |
| 163 | `platform` tinyint(1) default '0', |
| 164 | PRIMARY KEY (`id`) |
| 165 | ) ENGINE=InnoDB DEFAULT CHARSET=latin1; |
| 166 | |
| 167 | -- |
| 168 | -- Table structure for table `users` |
| 169 | -- |
| 170 | |
| 171 | DROP TABLE IF EXISTS `users`; |
| 172 | CREATE TABLE `users` ( |
| 173 | `id` int(11) NOT NULL auto_increment, |
| 174 | `login` varchar(255) default NULL, |
| 175 | `access_level` int(11) default '0', |
| 176 | PRIMARY KEY (`id`) |
| 177 | ) ENGINE=InnoDB DEFAULT CHARSET=latin1; |
| 178 | """ |
mbligh | aa383b7 | 2008-03-12 20:11:56 +0000 | [diff] [blame] | 179 | |
| 180 | |
| 181 | DROP_DB_SQL = """\ |
| 182 | DROP TABLE IF EXISTS `acl_groups`; |
| 183 | DROP TABLE IF EXISTS `acl_groups_hosts`; |
| 184 | DROP TABLE IF EXISTS `acl_groups_users`; |
| 185 | DROP TABLE IF EXISTS `autotests`; |
| 186 | DROP TABLE IF EXISTS `host_queue_entries`; |
| 187 | DROP TABLE IF EXISTS `hosts`; |
| 188 | DROP TABLE IF EXISTS `hosts_labels`; |
| 189 | DROP TABLE IF EXISTS `ineligible_host_queues`; |
| 190 | DROP TABLE IF EXISTS `jobs`; |
| 191 | DROP TABLE IF EXISTS `labels`; |
| 192 | DROP TABLE IF EXISTS `users`; |
| 193 | """ |