Skip to content

Commit cdd1c87

Browse files
9keyyyyGukhee Jo
andauthored
fix: daily fortune details 날짜별 unique 제약조건 추가 (#22)
Co-authored-by: Gukhee Jo <[email protected]>
1 parent e715b2e commit cdd1c87

File tree

2 files changed

+34
-1
lines changed

2 files changed

+34
-1
lines changed
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
"""add_unique_constraint_to_user_daily_fortune_detail
2+
3+
Revision ID: 50ef02f95f5c
4+
Revises: 578233fccdf8
5+
Create Date: 2025-08-22 19:26:03.866093
6+
7+
"""
8+
from typing import Sequence, Union
9+
10+
from alembic import op
11+
import sqlalchemy as sa
12+
13+
14+
# revision identifiers, used by Alembic.
15+
revision: str = '50ef02f95f5c'
16+
down_revision: Union[str, Sequence[str], None] = '578233fccdf8'
17+
branch_labels: Union[str, Sequence[str], None] = None
18+
depends_on: Union[str, Sequence[str], None] = None
19+
20+
21+
def upgrade() -> None:
22+
"""Upgrade schema."""
23+
# ### commands auto generated by Alembic - please adjust! ###
24+
op.create_unique_constraint('uk_user_daily_fortune_detail_user_date', 'user_daily_fortune_detail', ['user_id', 'fortune_date'])
25+
# ### end Alembic commands ###
26+
27+
28+
def downgrade() -> None:
29+
"""Downgrade schema."""
30+
# ### commands auto generated by Alembic - please adjust! ###
31+
op.drop_constraint('uk_user_daily_fortune_detail_user_date', 'user_daily_fortune_detail', type_='unique')
32+
# ### end Alembic commands ###

src/fortune/entities/models.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# src/fortune/entities/models.py
2-
from sqlalchemy import Column, Integer, Date, Enum as SAEnum, String, CheckConstraint, ForeignKey, JSON
2+
from sqlalchemy import Column, Integer, Date, Enum as SAEnum, String, CheckConstraint, ForeignKey, JSON, UniqueConstraint
33
from sqlalchemy.orm import relationship
44
from src.config.database import Base
55
from src.fortune.entities.enums import FortuneType
@@ -41,4 +41,5 @@ class UserDailyFortuneDetail(Base):
4141
__table_args__ = (
4242
CheckConstraint("fortune_score >= 0 AND fortune_score <= 100", name="ck_fortune_score_range"),
4343
CheckConstraint("length(fortune_comment) > 0", name="ck_fortune_comment_len"),
44+
UniqueConstraint("user_id", "fortune_date", name="uk_user_daily_fortune_detail_user_date"),
4445
)

0 commit comments

Comments
 (0)