
회사에서도 할 일 많고.. 요즘 너무 바쁘다
내가 좀 쉬는 걸 못 견디는 사람이라;;
주말에 아무것도 안 하는 날을 억지로 정해서 가만히 있어야 됨..
1월 말부터 안 쉬고 너무 달렸는데 이번 연휴에 꼭 하루 쉬어야겠다.
🚀 요약
작업 시간: 2시간
✅ 마이그레이션으로 필요한 테이블 전부 생성하기
🚀 ASP.NET ef core 환경에서 마이그레이션 하기
어제 테이블 하나 만드는 데 성공했으니 이제 필요한 나머지 테이블들도 마저 생성해야 한다!!
어제까지의 작업 정리 👇
[ASP.NET Core + PostgreSQL] ASP.NET EF Core + PostgreSQL 환경에서 마이그레이션 생성하고 적용하기
[ASP.NET Core + PostgreSQL] ASP.NET EF Core + PostgreSQL 환경에서 마이그레이션 생성하고 적용하기
ASP.NET EF Core + PostgreSQL 환경에서 마이그레이션 생성하고 적용하기 순서 요약DbContext와 모델 클래스 설정마이그레이션 추가 및 업데이트테이블이 정상적으로 생성되었는지 확인 1️⃣ AppDbCont
j-lisa-dev.tistory.com

필요한 모델 다 만들어줌
using Microsoft.EntityFrameworkCore;
public class AppDbContext : DbContext
{
public AppDbContext(DbContextOptions<AppDbContext> options) : base(options) { }
public DbSet<User> Users { get; set; }
public DbSet<Event> Events { get; set; }
public DbSet<EventParticipant> EventParticipants { get; set; }
public DbSet<Category> Categories { get; set; }
public DbSet<EventImage> EventImages { get; set; }
public DbSet<Comment> Comments { get; set; }
public DbSet<Like> Likes { get; set; }
public DbSet<Notification> Notifications { get; set; }
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
}
}
AppDbContext.cs

테이블 생성 완료!
오늘도 역시나 한 번에 되지 않았기 때문에..
🔍 테이블이 생성되지 않을 때 시도해볼 수 있는 방법
1️⃣ 데이터베이스 연결 확인
psql -h localhost -U postgres -d dbname
\l
psql 열어서 \l로 생성된 데이터베이스 목록 조회
appsettings.json 파일의 연결 정보와 맞는지 확인
2️⃣ 마이그레이션 롤백 후 다시 적용
dotnet ef migrations remove
dotnet ef migrations add NewMigration
dotnet ef database update
직전 마이그레이션 삭제 후 새로 생성해 적용
전체 삭제하고 새로 생성하고 싶다면 Migrations 폴더를 아예 삭제해버려도 된다.
3️⃣ 데이터베이스 삭제 후 다시 생성
여기까지 해도 제대로 테이블이 생성되지 않는다면 마이그레이션이 꼬였을 가능성이 있다.
이때는 데이터베이스를 깔끔히 삭제하고 처음부터 다시 시도해보는 게 좋을 수도 있다.
psql -h localhost -U postgres
DROP DATABASE dbname;
CREATE DATABASE dbname;
psql 접속 후 데이터베이스 삭제하고 다시 생성
ERROR: database "postgres" is being accessed by other users
DETAIL: There are 1 other session(s) using the database.
현재 접속한 데이터베이스를 삭제할 수 없으므로 다른 데이터베이스로 접속해야 한다.
\c template1
기본 제공되는 template1로 접속한 후 drop 쿼리를 다시 실행
\q
psql 종료
dotnet ef migrations add InitialCreate
dotnet ef database update
Migrations 폴더 삭제 후 새로운 마이그레이션 생성하고 데이터베이스에 적용
4️⃣ 필요한 패키지가 설치되어 있는지 확인
dotnet add package Microsoft.EntityFrameworkCore.Design
dotnet add package Npgsql.EntityFrameworkCore.PostgreSQL
dotnet restore
EF Core와 PostgreSQL 관련 패키지가 정상적으로 설치되었는지 확인
dotnet ef migrations add NewMigration
dotnet ef database update
새로운 마이그레이션 생성하고 데이터베이스에 적용
'study > 100 days (100일 챌린지)' 카테고리의 다른 글
[웹개발 100일] Day 15 - EF Core Include(), Select() 사용해서 테이블 조인해오기 (0) | 2025.02.28 |
---|---|
[웹개발 100일] Day 14 - ASP.NET API Controller, Service, DTO의 개념과 설계 / Postman으로 테스트 (3) | 2025.02.27 |
[웹개발 100일] Day 12 - 어떻게든 마이그레이션을 성공하려 노력해보기 (5) | 2025.02.25 |
[웹개발 100일] Day 11 - 모델 파일 생성, 마이그레이션 실행해보기 (실패!) (5) | 2025.02.24 |
[웹개발 100일] Day 10 - ASP.NET Core + PostgreSQL 프로젝트 생성, DB 마이그레이션, API 엔드포인트 테스트 (7) | 2025.02.23 |