Spaces:
Paused
Paused
| import psycopg2 | |
| import json | |
| from faker import Faker | |
| import os | |
| from dotenv import load_dotenv | |
| # Load environment variables from .env file | |
| load_dotenv() | |
| # Set up Faker for generating fake user data | |
| fake = Faker() | |
| # Get database connection | |
| def get_database_connection(): | |
| database_url = os.getenv("DATABASE_URL") | |
| if not database_url: | |
| raise ValueError("DATABASE_URL is not set in environment variables.") | |
| return psycopg2.connect(database_url) | |
| # Function to insert a single user into the database | |
| def insert_user(name, profile_name, about, skills, rating, trust_score, ninja_level, task_experience, online_status, profile_pic, is_pro): | |
| skills_json = json.dumps(skills) | |
| conn = get_database_connection() | |
| try: | |
| with conn.cursor() as curs: | |
| curs.execute(""" | |
| INSERT INTO users (name, profile_name, about, skills, rating, trust_score, ninja_level, task_experience, online_status, profile_pic, is_pro) | |
| VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s) | |
| RETURNING user_id | |
| """, (name, profile_name, about, skills_json, rating, trust_score, ninja_level, task_experience, online_status, profile_pic, is_pro)) | |
| user_id = curs.fetchone()[0] | |
| conn.commit() | |
| print(f"User added with ID: {user_id}") | |
| except Exception as e: | |
| conn.rollback() | |
| print(f"Error adding user: {e}") | |
| finally: | |
| conn.close() | |
| # Function to generate and insert 5 unique users | |
| def insert_unique_users(): | |
| for _ in range(5): | |
| name = fake.name() | |
| profile_name = fake.user_name() | |
| about = fake.text() | |
| skills = [fake.job() for _ in range(5)] | |
| rating = round(min(fake.random.uniform(0, 5.00), 5.00), 2) # Ensure rating is within 0.00 to 5.00 | |
| trust_score = round(min(fake.random.uniform(0, 5.00), 5.00), 2) # Ensure trust_score is within 0.00 to 5.00 | |
| ninja_level = fake.random.randint(1, 10) | |
| task_experience = fake.random.randint(0, 1000) | |
| online_status = fake.boolean() | |
| profile_pic = fake.image_url() | |
| is_pro = fake.boolean() | |
| insert_user(name, profile_name, about, skills, rating, trust_score, ninja_level, task_experience, online_status, profile_pic, is_pro) | |
| if __name__ == "__main__": | |
| insert_unique_users() | |