Add downgrade support to migrate. This is really necessary for doing real migration development. Modified all existing migrations to support it.
Signed-off-by: Steve Howard <[email protected]>
git-svn-id: http://test.kernel.org/svn/autotest/trunk@1336 592f7852-d20e-0410-864c-8624ca9c26a4
diff --git a/frontend/migrations/001_initial_db.py b/frontend/migrations/001_initial_db.py
index 0773ea0..f16e6ec 100644
--- a/frontend/migrations/001_initial_db.py
+++ b/frontend/migrations/001_initial_db.py
@@ -6,7 +6,6 @@
def migrate_up(manager):
- assert not manager.check_migrate_table_exists()
manager.execute("SHOW TABLES")
tables = [row[0] for row in manager.cursor.fetchall()]
db_initialized = True
@@ -27,6 +26,10 @@
manager.create_migrate_table()
+def migrate_down(manager):
+ manager.execute_script(DROP_DB_SQL)
+
+
CREATE_DB_SQL = """\
--
-- Table structure for table `acl_groups`
@@ -173,3 +176,18 @@
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
"""
+
+
+DROP_DB_SQL = """\
+DROP TABLE IF EXISTS `acl_groups`;
+DROP TABLE IF EXISTS `acl_groups_hosts`;
+DROP TABLE IF EXISTS `acl_groups_users`;
+DROP TABLE IF EXISTS `autotests`;
+DROP TABLE IF EXISTS `host_queue_entries`;
+DROP TABLE IF EXISTS `hosts`;
+DROP TABLE IF EXISTS `hosts_labels`;
+DROP TABLE IF EXISTS `ineligible_host_queues`;
+DROP TABLE IF EXISTS `jobs`;
+DROP TABLE IF EXISTS `labels`;
+DROP TABLE IF EXISTS `users`;
+"""
diff --git a/frontend/migrations/002_cleanup_fields.py b/frontend/migrations/002_cleanup_fields.py
index ccd8c1c..a3656ca 100644
--- a/frontend/migrations/002_cleanup_fields.py
+++ b/frontend/migrations/002_cleanup_fields.py
@@ -3,3 +3,10 @@
manager.execute('ALTER TABLE jobs DROP kernel_url, DROP status, '
'DROP submitted_on')
manager.execute('ALTER TABLE host_queue_entries DROP created_on')
+
+def migrate_down(manager):
+ manager.execute('ALTER TABLE autotests ADD params VARCHAR(255)')
+ manager.execute('ALTER TABLE jobs ADD kernel_url VARCHAR(255), '
+ 'ADD status VARCHAR(255), ADD submitted_on datetime')
+ manager.execute('ALTER TABLE host_queue_entries ADD created_on '
+ 'datetime')