38 lines
1.4 KiB
Python
38 lines
1.4 KiB
Python
import asyncio
|
|
|
|
from sqlalchemy import select
|
|
|
|
from database import engine, async_session
|
|
from models import Base, Sample
|
|
|
|
|
|
async def init_db():
|
|
async with engine.begin() as conn:
|
|
await conn.run_sync(Base.metadata.create_all)
|
|
|
|
|
|
async def seed():
|
|
await init_db()
|
|
|
|
async with async_session() as session:
|
|
result = await session.execute(select(Sample))
|
|
existing = result.scalars().all()
|
|
if existing:
|
|
print(f"이미 {len(existing)}건의 샘플 데이터가 존재합니다. seed를 건너뜁니다.")
|
|
return
|
|
|
|
samples = [
|
|
Sample(title="첫 번째 샘플", content="안녕하세요, 첫 번째 게시글입니다.", author="홍길동"),
|
|
Sample(title="두 번째 샘플", content="PostgreSQL 외부 연결 테스트 중입니다.", author="김철수"),
|
|
Sample(title="세 번째 샘플", content="FastAPI와 Vue로 게시판을 만듭니다.", author="이영희"),
|
|
Sample(title="네 번째 샘플", content="데이터베이스 연동이 잘 되네요!", author="박민수"),
|
|
Sample(title="다섯 번째 샘플", content="화면에 표시되는지 확인해보세요.", author="최지은"),
|
|
]
|
|
session.add_all(samples)
|
|
await session.commit()
|
|
print(f"{len(samples)}건의 샘플 데이터가 INSERT 되었습니다.")
|
|
|
|
|
|
if __name__ == "__main__":
|
|
asyncio.run(seed())
|