2022-02-17 15:52:49 +00:00
|
|
|
|
namespace VoidCat.Services.Migrations;
|
|
|
|
|
|
2022-07-06 22:03:53 +00:00
|
|
|
|
/// <summary>
|
|
|
|
|
/// Startup migrations
|
|
|
|
|
/// </summary>
|
2022-02-17 15:52:49 +00:00
|
|
|
|
public interface IMigration
|
|
|
|
|
{
|
2022-07-06 22:03:53 +00:00
|
|
|
|
/// <summary>
|
|
|
|
|
/// Order to run migrations
|
|
|
|
|
/// </summary>
|
|
|
|
|
int Order { get; }
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Run migration
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="args"></param>
|
|
|
|
|
/// <returns></returns>
|
2022-06-08 16:17:53 +00:00
|
|
|
|
ValueTask<MigrationResult> Migrate(string[] args);
|
|
|
|
|
|
2022-07-06 22:03:53 +00:00
|
|
|
|
/// <summary>
|
|
|
|
|
/// Results of running migration
|
|
|
|
|
/// </summary>
|
2022-06-08 16:17:53 +00:00
|
|
|
|
public enum MigrationResult
|
|
|
|
|
{
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Migration was not run
|
|
|
|
|
/// </summary>
|
|
|
|
|
Skipped,
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Migration completed successfully, continue to startup
|
|
|
|
|
/// </summary>
|
|
|
|
|
Completed,
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Migration completed Successfully, exit application
|
|
|
|
|
/// </summary>
|
|
|
|
|
ExitCompleted
|
|
|
|
|
}
|
2022-02-17 15:52:49 +00:00
|
|
|
|
}
|