from abc import ABC, abstractmethod class Migration(ABC): """ Abstract Migration class This class is used to define the structure of a migration Migration has a function is_migration_needed() that returns True or False Migration has a function migrate() that does the migration Migration has a function get_migration_name() that returns the migration name Migration has a function get_migration_description() that returns the migration description """ @abstractmethod def get_migration_name(self): pass @abstractmethod def get_migration_description(self): pass @abstractmethod def is_migration_needed(self): pass @abstractmethod def migrate(self): pass