Program.cs 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. using System;
  2. using Castle.Facilities.Logging;
  3. using Abp;
  4. using Abp.Castle.Logging.Log4Net;
  5. using Abp.Collections.Extensions;
  6. using Abp.Dependency;
  7. namespace VberAdmin.Migrator;
  8. public class Program
  9. {
  10. private static bool _quietMode;
  11. public static void Main(string[] args)
  12. {
  13. ParseArgs(args);
  14. using var bootstrapper = AbpBootstrapper.Create<VberAdminMigratorModule>();
  15. bootstrapper.IocManager.IocContainer
  16. .AddFacility<LoggingFacility>(
  17. f => f.UseAbpLog4Net().WithConfig("log4net.config")
  18. );
  19. bootstrapper.Initialize();
  20. using var migrateExecuter = bootstrapper.IocManager.ResolveAsDisposable<MultiTenantMigrateExecuter>();
  21. var migrationSucceeded = migrateExecuter.Object.Run(_quietMode);
  22. if (_quietMode)
  23. {
  24. // exit clean (with exit code 0) if migration is a success, otherwise exit with code 1
  25. var exitCode = Convert.ToInt32(!migrationSucceeded);
  26. Environment.Exit(exitCode);
  27. }
  28. else
  29. {
  30. Console.WriteLine("Press ENTER to exit...");
  31. Console.ReadLine();
  32. }
  33. }
  34. private static void ParseArgs(string[] args)
  35. {
  36. if (args.IsNullOrEmpty())
  37. {
  38. return;
  39. }
  40. foreach (var arg in args)
  41. {
  42. switch (arg)
  43. {
  44. case "-q":
  45. _quietMode = true;
  46. break;
  47. }
  48. }
  49. }
  50. }