diff --git a/src/simple_db_migrate/core.py b/src/simple_db_migrate/core.py index 133cbcf..9bd07cd 100644 --- a/src/simple_db_migrate/core.py +++ b/src/simple_db_migrate/core.py @@ -42,6 +42,10 @@ def get_all_migration_versions(self): for each_file in migration_files: versions.append(self.get_migration_version(each_file)) return versions + + def get_all_migration_versions_up_to(self, limit_version): + all_versions = self.get_all_migration_versions() + return [version for version in all_versions if version < limit_version] def get_migration_version(self, sql_file): return sql_file[0:sql_file.find("_")] diff --git a/tests/core_test.py b/tests/core_test.py index 0150351..f20e9cf 100644 --- a/tests/core_test.py +++ b/tests/core_test.py @@ -87,7 +87,13 @@ def test_it_should_get_all_migration_versions_available(self): all_versions = db_migrate.get_all_migration_versions() for each_version_got in all_versions: self.assertTrue(each_version_got in expected_versions) - + + def test_it_should_get_all_migration_versions_up_to_a_version(self): + db_migrate = SimpleDBMigrate(".") + migration_files = db_migrate.get_all_migration_versions_up_to("20090214115200") + self.assertEquals(len(migration_files), 1) + self.assertEquals(migration_files[0], "20090214115100") + def test_it_should_get_migration_up_command_in_file(self): db_migrate = SimpleDBMigrate(".") migration_file = "20090214120600_example_migration_file_with_commands.migration"