aboutsummaryrefslogtreecommitdiffstats
path: root/mediagoblin/db/migration_tools.py
diff options
context:
space:
mode:
authortilly-Q <nattilypigeonfowl@gmail.com>2013-07-29 16:36:06 -0400
committertilly-Q <nattilypigeonfowl@gmail.com>2013-07-29 16:36:06 -0400
commitf2b2008da51ff554df1af0e5a14a73aff4d89c33 (patch)
tree16e2d42c5b5fbf97b634c47741789556dd91cb75 /mediagoblin/db/migration_tools.py
parent130b85f81ac297ebb769ab133c8adb1647d794a8 (diff)
downloadmediagoblin-f2b2008da51ff554df1af0e5a14a73aff4d89c33.tar.lz
mediagoblin-f2b2008da51ff554df1af0e5a14a73aff4d89c33.tar.xz
mediagoblin-f2b2008da51ff554df1af0e5a14a73aff4d89c33.zip
This was a very simple ticket actually. I created a list called FOUNDATIONS in
mediagoblin/db/models.py. This list holds all of the information about rows that should be created at database initialization. Read the documentation near the FOUNDATIONS list to understand the proper format for this list. All of the work is done through a new method on MigrationManager in mediagoblin/db/migrations_tools.py. This method, `populate_table_foundations` parses the FOUNDATIONS list and creates the foundations based on the data incl- uded. This only ever happens when the database is initialized. Migrations to releases with new Foundations should be very easy just using the basic database functionality.
Diffstat (limited to 'mediagoblin/db/migration_tools.py')
-rw-r--r--mediagoblin/db/migration_tools.py16
1 files changed, 15 insertions, 1 deletions
diff --git a/mediagoblin/db/migration_tools.py b/mediagoblin/db/migration_tools.py
index aa22ef94..1192836d 100644
--- a/mediagoblin/db/migration_tools.py
+++ b/mediagoblin/db/migration_tools.py
@@ -140,6 +140,18 @@ class MigrationManager(object):
self.session.bind,
tables=[model.__table__ for model in self.models])
+ def populate_table_foundations(self):
+ """
+ Create the table foundations (default rows) as layed out in FOUNDATIONS
+ in mediagoblin.db.models
+ """
+ from mediagoblin.db.models import FOUNDATIONS as MAIN_FOUNDATIONS
+ for Model, rows in MAIN_FOUNDATIONS.items():
+ print u'\n--> Laying foundations for %s table' % Model.__name__
+ for parameters in rows:
+ row = Model(**parameters)
+ row.save()
+
def create_new_migration_record(self):
"""
Create a new migration record for this migration set
@@ -202,7 +214,9 @@ class MigrationManager(object):
self.init_tables()
# auto-set at latest migration number
- self.create_new_migration_record()
+ self.create_new_migration_record()
+ if self.name==u'__main__':
+ self.populate_table_foundations()
self.printer(u"done.\n")
self.set_current_migration()