Files
wordsearch/seed.py
T

99 lines
1.9 KiB
Python

from db import get_engine, get_session_factory, init_db
from models.category import Category, CategoryWord
SEED_DATA = {
"animals": [
"TIGER",
"DOLPHIN",
"EAGLE",
"WOLF",
"BEAR",
"LION",
"HAWK",
"DEER",
"FROG",
"SHARK",
"SNAKE",
"WHALE",
"ZEBRA",
"PANDA",
"OTTER",
"FALCON",
"BISON",
"CRANE",
"MOOSE",
"RAVEN",
],
"colors": [
"CRIMSON",
"VIOLET",
"AMBER",
"SCARLET",
"INDIGO",
"MAROON",
"CORAL",
"IVORY",
"SILVER",
"GOLDEN",
"BRONZE",
"TEAL",
"OLIVE",
"PLUM",
"RUST",
"SAGE",
"NAVY",
"JADE",
"CYAN",
"MAUVE",
],
"food": [
"PIZZA",
"SUSHI",
"MANGO",
"PASTA",
"TACO",
"BREAD",
"STEAK",
"GRAPE",
"MELON",
"PEACH",
"OLIVE",
"LEMON",
"BACON",
"WAFFLE",
"CREPE",
"DONUT",
"SALAD",
"CURRY",
"BAGEL",
"FUDGE",
],
}
def seed():
engine = get_engine()
init_db(engine)
Session = get_session_factory(engine)
session = Session()
for cat_name, words in SEED_DATA.items():
existing = session.query(Category).filter_by(name=cat_name).first()
if existing:
print(f"Category '{cat_name}' already exists, skipping.")
continue
cat = Category(name=cat_name)
session.add(cat)
session.flush()
for w in words:
session.add(CategoryWord(category_id=cat.id, word=w))
print(f"Seeded category '{cat_name}' with {len(words)} words.")
session.commit()
session.close()
print("Done.")
if __name__ == "__main__":
seed()