Something went wrong. Try again.
A database migration tool for .NET
Something went wrong. Try again.
1.3 kB · 46 lines
C#
at develop
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647using System;using System.CommandLine;using System.IO;using Spectre.Console;
namespace Migrato.Cli.Commands;
/// <summary>/// Scaffolds a new, empty migration file/// </summary>internal static class CreateCommand{ public static Command Build() { var nameArgument = new Argument<string>("name") { Description = "Name of the migration" };
var command = new Command("create", "Creates a new migration file") { nameArgument, MigrationOptions.Dir };
command.SetAction(parseResult => { var name = parseResult.GetValue(nameArgument)!; var dir = parseResult.GetValue(MigrationOptions.Dir)!;
Directory.CreateDirectory(dir);
var sanitizedName = string.Join('_', name.Split(' ', StringSplitOptions.RemoveEmptyEntries)); var version = DateTimeOffset.UtcNow.ToString("yyyyMMddHHmmss"); var fileName = $"{version}_{sanitizedName}.sql"; var path = Path.Combine(dir, fileName);
File.WriteAllText(path, "-- +migrato Up\n\n-- +migrato Down\n");
AnsiConsole.MarkupLineInterpolated($"Created migration [green]{fileName}[/]"); return 0; });
return command; }}