Download database/seed_db.py from datawizard116/GenAI-Text2SQL-Analytics-Assistant: direct link, hf CLI and curl.
- Browser
- Download file 2.64 kB
-
https://huggingface.co/spaces/datawizard116/GenAI-Text2SQL-Analytics-Assistant/resolve/ab2708c859bc8ebe3a6d34cbe2e548a079c88a3e/database/seed_db.py
- Command line
-
hf download hf://spaces/datawizard116/GenAI-Text2SQL-Analytics-Assistant@ab2708c859bc8ebe3a6d34cbe2e548a079c88a3e/database/seed_db.py
-
curl -L -o seed_db.py https://huggingface.co/spaces/datawizard116/GenAI-Text2SQL-Analytics-Assistant/resolve/ab2708c859bc8ebe3a6d34cbe2e548a079c88a3e/database/seed_db.py
2.64 kB
| import random | |
| from faker import Faker | |
| from datetime import datetime, timedelta | |
| from sqlalchemy import create_engine | |
| from sqlalchemy.orm import sessionmaker | |
| from create_db import ( | |
| Base, | |
| Customer, | |
| Product, | |
| Employee, | |
| Order, | |
| OrderItem | |
| ) | |
| fake = Faker() | |
| engine = create_engine("sqlite:///ecommerce.db") | |
| Session = sessionmaker(bind=engine) | |
| session = Session() | |
| customers = [] | |
| for _ in range(100): | |
| customer = Customer( | |
| name=fake.name(), | |
| email=fake.unique.email(), | |
| city=fake.city(), | |
| signup_date=fake.date_between(start_date="-2y", end_date="today") | |
| ) | |
| customers.append(customer) | |
| session.add_all(customers) | |
| session.commit() | |
| print(" Customers inserted") | |
| categories = [ | |
| "Electronics", | |
| "Clothing", | |
| "Books", | |
| "Home", | |
| "Sports" | |
| ] | |
| products = [] | |
| for _ in range(50): | |
| product = Product( | |
| product_name=fake.word().capitalize() + " Product", | |
| category=random.choice(categories), | |
| price=round(random.uniform(10, 1000), 2), | |
| stock=random.randint(10, 500) | |
| ) | |
| products.append(product) | |
| session.add_all(products) | |
| session.commit() | |
| print(" Products inserted") | |
| departments = [ | |
| "Sales", | |
| "Support", | |
| "Operations", | |
| "HR" | |
| ] | |
| employees = [] | |
| for _ in range(10): | |
| employee = Employee( | |
| employee_name=fake.name(), | |
| department=random.choice(departments) | |
| ) | |
| employees.append(employee) | |
| session.add_all(employees) | |
| session.commit() | |
| print(" Employees inserted") | |
| orders = [] | |
| for _ in range(500): | |
| customer = random.choice(customers) | |
| employee = random.choice(employees) | |
| order = Order( | |
| customer_id=customer.customer_id, | |
| employee_id=employee.employee_id, | |
| order_date=fake.date_between(start_date="-1y", end_date="today"), | |
| total_amount=0 | |
| ) | |
| session.add(order) | |
| session.flush() | |
| total_amount = 0 | |
| # Each order gets 1-5 products | |
| for _ in range(random.randint(1, 5)): | |
| product = random.choice(products) | |
| quantity = random.randint(1, 5) | |
| order_item = OrderItem( | |
| order_id=order.order_id, | |
| product_id=product.product_id, | |
| quantity=quantity | |
| ) | |
| session.add(order_item) | |
| total_amount += product.price * quantity | |
| order.total_amount = round(total_amount, 2) | |
| orders.append(order) | |
| session.commit() | |
| print(" Orders and order items inserted") | |
| print("\n🎉 Database successfully populated with synthetic data!") |