From: Christopher Allan Webber Date: Sun, 10 Jul 2011 20:41:18 +0000 (-0500) Subject: Simpler run_migrations method. X-Git-Url: https://vcs.fsf.org/?a=commitdiff_plain;h=d0ee0003a2473b8ef23e32a0b1d754f5ce36d530;p=mediagoblin.git Simpler run_migrations method. Allows for calbacks, should be useful for printing output and catching things in tests. Gets rid of the generator stuff which now that I think of it is a messy idea. --- diff --git a/mediagoblin/db/util.py b/mediagoblin/db/util.py index 7bae57ff..9e4efcab 100644 --- a/mediagoblin/db/util.py +++ b/mediagoblin/db/util.py @@ -232,25 +232,22 @@ class MigrationManager(object): for migration_number, migration_func in self.sorted_migrations if migration_number > db_current_migration] - def iteratively_migrate(self): + def migrate_new(self, pre_callback=None, post_callback=None): """ - Iteratively run all migrations. + Run all migrations. - Useful if you need to print some message about each migration - after you run it. - - Each time you loop over this, it'll return the migration - number and migration function. + Includes two optional args: + - pre_callback: if called, this is a callback on something to + run pre-migration. Takes (migration_number, migration_func) + as arguments + - pre_callback: if called, this is a callback on something to + run post-migration. Takes (migration_number, migration_func) + as arguments """ for migration_number, migration_func in self.migrations_to_run(): + if pre_callback: + pre_callback(migration_number, migration_func) migration_func(self.database) self.set_current_migration(migration_number) - yield migration_number, migration_func - - def run_new_migrations(self): - """ - Install all migrations that need to be installed, quietly. - """ - for migration_number, migration_func in self.iteratively_migrate(): - # No need to say anything... we're just migrating quietly. - pass + if post_callback: + post_callback(migration_number, migration_func)