using System.Threading;
using System.Threading.Tasks;
using Timeline.Entities;
namespace Timeline.Services.DatabaseManagement
{
    public interface IDatabaseCustomMigration
    {
        string GetName();
        /// 
        /// Execute the migration on database.
        /// 
        /// The database.
        /// Cancellation token.
        /// 
        /// Do not create transaction since the migrator will take care of transaction.
        /// 
        Task ExecuteAsync(DatabaseContext database, CancellationToken cancellationToken = default);
    }
}