- MigrationRunner가 ~/taxbaik_active/migrations에서 직접 SQL 읽음 - 리소스 임베딩 대신 배포 디렉토리의 마이그레이션 파일 사용 - 모든 테이블 생성 및 권한 설정 완료 배포 결과: ✅ Web 서비스 실행 중 (포트 5001) - HTTP 200 OK ✅ 모든 데이터베이스 테이블 생성됨 ✅ 초기 데이터 삽입됨 (카테고리 5개, 블로그 5개, 관리자 1명) ✅ 공개 접근 가능 (http://178.104.200.7/taxbaik) ✅ Nginx 라우팅 정상 작동
This commit is contained in:
@@ -72,26 +72,30 @@ public class MigrationRunner
|
||||
private List<Migration> GetAvailableMigrations()
|
||||
{
|
||||
var migrations = new List<Migration>();
|
||||
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 });
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user