from mongodb_migrations.base import BaseMigration class Migration(BaseMigration): name_template = "ind_{}_created_at" collections_list = ("apple_station", "spotify_cache", "apple_cache") def create_index(self, collection_name): # ttl index 30 days self.db[collection_name].create_index( "created_at", name=self.name_template.format(collection_name), expireAfterSeconds=(30 * 24 * 60 * 60), background=True, ) def upgrade(self): self.db["cache"].drop() for collection_name in self.collections_list: self.create_index(collection_name) def downgrade(self): self.create_index("cache") for collection_name in self.collections_list: self.db[collection_name].drop_index(self.name_template.format(collection_name))