Program.cs 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. using System.Reflection;
  2. using api_cs;
  3. using Dapper;
  4. using DbUp;
  5. using MySqlConnector;
  6. string? connectionString = Environment.GetEnvironmentVariable("CONNECTION_STRING");
  7. Console.WriteLine("connectionString (from ENV): {0}", connectionString);
  8. if (connectionString == null)
  9. connectionString = "Server=localhost; Port=3308; User ID=root; Password=toor; Database=mydb;";
  10. // проверяет наличие возможности подключения к БД
  11. EnsureDatabase.For.MySqlDatabase(connectionString);
  12. // подгатавливает миграцию
  13. // куда и что будем накатывать
  14. var upgrader = DeployChanges.To
  15. .MySqlDatabase(connectionString)
  16. .WithScriptsEmbeddedInAssembly(Assembly.GetExecutingAssembly())
  17. .LogToConsole()
  18. .Build();
  19. // запуск миграции
  20. var result = upgrader.PerformUpgrade();
  21. // проверка результата миграции
  22. if (!result.Successful)
  23. {
  24. throw new Exception("Не смог сделать миграцию");
  25. }
  26. var builder = WebApplication.CreateBuilder(args);
  27. var app = builder.Build();
  28. app.MapGet("/genre", () =>
  29. {
  30. using (MySqlConnection db = new MySqlConnection(connectionString))
  31. {
  32. return db.Query<Genre>(
  33. "SELECT * FROM Genre");
  34. }
  35. });
  36. app.Run();