blob: f16e6ec7e4e34689b62c2e9cefd95c535440bbfd [file] [log] [blame]
mblighe8819cd2008-02-15 16:48:40 +00001import os
2
3required_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
8def migrate_up(manager):
mblighe8819cd2008-02-15 16:48:40 +00009 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
mblighaa383b72008-03-12 20:11:56 +000029def migrate_down(manager):
30 manager.execute_script(DROP_DB_SQL)
31
32
mblighe8819cd2008-02-15 16:48:40 +000033CREATE_DB_SQL = """\
34--
35-- Table structure for table `acl_groups`
36--
37
38DROP TABLE IF EXISTS `acl_groups`;
39CREATE 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
50DROP TABLE IF EXISTS `acl_groups_hosts`;
51CREATE 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
60DROP TABLE IF EXISTS `acl_groups_users`;
61CREATE 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
70DROP TABLE IF EXISTS `autotests`;
71CREATE 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
82DROP TABLE IF EXISTS `host_queue_entries`;
83CREATE 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
100DROP TABLE IF EXISTS `hosts`;
101CREATE 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
114DROP TABLE IF EXISTS `hosts_labels`;
115CREATE 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
124DROP TABLE IF EXISTS `ineligible_host_queues`;
125CREATE 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
136DROP TABLE IF EXISTS `jobs`;
137CREATE 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
158DROP TABLE IF EXISTS `labels`;
159CREATE 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
171DROP TABLE IF EXISTS `users`;
172CREATE 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"""
mblighaa383b72008-03-12 20:11:56 +0000179
180
181DROP_DB_SQL = """\
182DROP TABLE IF EXISTS `acl_groups`;
183DROP TABLE IF EXISTS `acl_groups_hosts`;
184DROP TABLE IF EXISTS `acl_groups_users`;
185DROP TABLE IF EXISTS `autotests`;
186DROP TABLE IF EXISTS `host_queue_entries`;
187DROP TABLE IF EXISTS `hosts`;
188DROP TABLE IF EXISTS `hosts_labels`;
189DROP TABLE IF EXISTS `ineligible_host_queues`;
190DROP TABLE IF EXISTS `jobs`;
191DROP TABLE IF EXISTS `labels`;
192DROP TABLE IF EXISTS `users`;
193"""