๐ ๋ฌธ์ ๋ด์ฉ
DB ์์ฑ > ๋ง์ด๊ทธ๋ ์ด์ ์ถ๊ฐ > dotnet ef database update๋ก ๋ง์ด๊ทธ๋ ์ด์ ์ ๋ฐ์ดํธ
์ด ๊ณผ์ ์ดํ์ ์๋ ์๋ฌ๊ฐ ๋ฐ๋ณต์ ์ผ๋ก ๋ฐ์ํ๋ค.
DateTime ํ์ ์ ์ ์ฅํ ๋ ๋ช ํํ ์๊ฐ๋ ์ ๋ณด(UTC ๋ฑ)๊ฐ ํ์ํ๋ค๋ ๋ด์ฉ์ด๋ค.
'timestamp with time zone' literal cannot be generated for Unspecified DateTime: a UTC DateTime is required
๊ด๋ จ ์๋ฃ๋ฅผ ์ฐพ์๋ณด๋ ค ํ์ง๋ง ์ด ๊ธ ํ๋๋ฐ์ ์ฐพ์ง ๋ชป ํ๊ณ ๋์๊ฒ ํด๊ฒฐ๋ฐฉ๋ฒ์ด ๋์ง ์์๋ค.
npgsql ef core migration to 6.0: 'timestamp with time zone' literal cannot be generated for Unspecified DateTime · Issue #2479
Hello. I am migrating my project from core 3.1 to core 6.0 and I have troubles with npgsql migration. On my old version I've stored dates using the DateTime clr type and the timestamp without time ...
github.com
์ฒ์์ HasData()๋ฅผ ์ฌ์ฉํด seed ๋ฐ์ดํฐ๋ฅผ ๋ฃ์ด์ฃผ๊ณ ์์๊ธฐ ๋๋ฌธ์ ํน์ new DateTime() ๋๋ฌธ์ธ๊ฐ ์ถ์ด ์์ ์ด ๋ถ๋ถ์ ์ญ์ ํด๋ณด์์ง๋ง ์ฌ์ ํ ๊ฐ์ ์๋ฌ๊ฐ ๋ฐ์ํ๋ค.
modelBuilder.Entity<User>().HasData(
new User
{
Id = 1,
CreatedAt = new DateTime(2025, 2, 24, 0, 0, 0, DateTimeKind.Utc), // UTC ๋ช
์
UpdatedAt = new DateTime(2025, 2, 24, 0, 0, 0, DateTimeKind.Utc) // UTC ๋ช
์
}
);
๐ ์๋ํด๋ณผ ์ ์๋ ๋ฐฉ๋ฒ
1๏ธโฃ DateTime์ UTC๋ก ๋ณํํด์ ์ ์ฅ
public class User
{
public int Id { get; set; }
public DateTime CreatedAt { get; set; } = DateTime.UtcNow; // UTC๋ก ์ ์ฅ
public DateTime? UpdatedAt { get; set; } = DateTime.UtcNow; // UTC๋ก ์ ์ฅ
}
2๏ธโฃ ๋ง์ด๊ทธ๋ ์ด์ ํ์ผ ๋ค์ ์์ฑํด๋ณด๊ธฐ
dotnet ef migrations remove #๋ง์ง๋ง ๋ง์ด๊ทธ๋ ์ด์
์ญ์
dotnet ef migrations add FixedMigration #์๋ก์ด ๋ง์ด๊ทธ๋ ์ด์
์ถ๊ฐ
dotnet ef database update #DB ์
๋ฐ์ดํธ
3๏ธโฃ ๋ง์ด๊ทธ๋ ์ด์ ๊ฐ์ ์ ์ฉ (๋ฐ์ดํฐ๋ฒ ์ด์ค ์ญ์ ํ ์ด๊ธฐํ)
DROP DATABASE "DBName";
๋ฐ์ดํฐ๋ฒ ์ด์ค ์ญ์
CREATE DATABASE "DBName";
๋ฐ์ดํฐ๋ฒ ์ด์ค ์๋ก ์์ฑ
dotnet ef database update
์๋ก์ด ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๊ธฐ์กด ๋ง์ด๊ทธ๋ ์ด์ ์ ์ฉ (๊ธฐ์กด ๋ฐ์ดํฐ ์ ์ง)
dotnet ef migrations remove
dotnet ef migrations add "NewMigration"
dotnet ef database update
๋๋ ๋ง์ด๊ทธ๋ ์ด์ ๋ ์ด๊ธฐํ ํ ์๋ก ์์ฑ (๊ธฐ์กด ๋ฐ์ดํฐ๊น์ง ์ญ์ )
4๏ธโฃ ์ฌ๊ธฐ๊น์ง๋ ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋์ง ์๋๋ค๋ฉด .NET ํ๋ก์ ํธ๋ถํฐ ๋ค์ ๋ง๋ค์ด ๋ด ์๋ค..
์ ๋ ์ดํ ๋์ ์จ๊ฐ ๋ฐฉ๋ฒ์ ์๋ํด๋ด๋ ๊ฐ์ ์๋ฌ๊ฐ ๋์ ๊ฒฐ๊ตญ ์ ํ๋ก์ ํธ๋ฅผ ๋ง๋ค์๋๋ ํด๊ฒฐ๋์ด์ ๐ญ