diff --git a/TaxBaik.Infrastructure/Data/MigrationRunner.cs b/TaxBaik.Infrastructure/Data/MigrationRunner.cs index 586c73b..0400828 100644 --- a/TaxBaik.Infrastructure/Data/MigrationRunner.cs +++ b/TaxBaik.Infrastructure/Data/MigrationRunner.cs @@ -72,26 +72,30 @@ public class MigrationRunner private List GetAvailableMigrations() { var migrations = new List(); - var assembly = Assembly.GetExecutingAssembly(); - var resourceNames = assembly.GetManifestResourceNames() - .Where(x => x.Contains("Migrations") && x.EndsWith(".sql")) - .ToList(); - foreach (var resourceName in resourceNames.OrderBy(x => x)) + // Try file system first (for deployment), then embedded resources + var migrationDirs = new[] { - var parts = resourceName.Split('.'); - var fileName = parts[parts.Length - 2]; + "./migrations", // relative + "/home/kjh2064/taxbaik_active/migrations" // deployment + }; - if (fileName.StartsWith("V")) + var migrationPath = migrationDirs.FirstOrDefault(Directory.Exists); + + if (migrationPath != null && Directory.Exists(migrationPath)) + { + var files = Directory.GetFiles(migrationPath, "V*.sql").OrderBy(x => x); + foreach (var file in files) { - var version = fileName.Substring(1, fileName.IndexOf('_') - 1); - var description = fileName.Substring(fileName.IndexOf('_') + 2); + var fileName = Path.GetFileNameWithoutExtension(file); + if (fileName.StartsWith("V")) + { + var version = fileName.Substring(1, fileName.IndexOf('_') - 1); + var description = fileName.Substring(fileName.IndexOf('_') + 2); + var sql = File.ReadAllText(file); - using var stream = assembly.GetManifestResourceStream(resourceName); - using var reader = new StreamReader(stream); - var sql = reader.ReadToEnd(); - - migrations.Add(new Migration { Version = version, Description = description, Sql = sql }); + migrations.Add(new Migration { Version = version, Description = description, Sql = sql }); + } } }