Added init_tables method to MigrationManager
authorChristopher Allan Webber <cwebber@dustycloud.org>
Mon, 2 Jan 2012 14:55:25 +0000 (08:55 -0600)
committerChristopher Allan Webber <cwebber@dustycloud.org>
Sun, 29 Jan 2012 22:33:45 +0000 (16:33 -0600)
mediagoblin/db/sql/util.py

index db66776de12488bb5f514cbc19d7a17806f3bf2a..59e8eb8bd2f87e9730e3c8f1380e6f4108d8fbf0 100644 (file)
@@ -121,8 +121,16 @@ class MigrationManager(object):
 
 
     def init_tables(self):
-        ## TODO
-        pass
+        """
+        Create all tables relative to this package
+        """
+        # sanity check before we proceed, none of these should be created
+        for model in self.models:
+            assert not model.__table__.exists(self.database)
+
+        self.migration_model.metadata.create_all(
+            self.database,
+            tables=[model.__table__ for model in self.models])
 
     def create_new_migration_record(self):
         ## TODO
@@ -163,6 +171,8 @@ class MigrationManager(object):
         Returns information about whether or not we initialized
         ('inited'), migrated ('migrated'), or did nothing (None)
         """
+        assure_migrations_table_setup(self.database)
+
         # Find out what migration number, if any, this database data is at,
         # and what the latest is.
         migration_number = self.database_current_migration()