PilznoProduction/python_files/db_population.py

104 lines
4 KiB
Python

from sqlalchemy import create_engine, MetaData, Table, select, insert, func, update, bindparam, delete
import os
import csv
from datetime import datetime, timedelta
from dateutil.parser import parse
import time
import json
from werkzeug.security import generate_password_hash
import random
def engineer():
engine = create_engine('sqlite:////home/yisroel2/Desktop/Pilzno/instance/site.db')
# engine = create_engine('sqlite:///C:/Users/Lenovo/Desktop/Pilzno/instance/site.db')
metadata_obj = MetaData()
metadata_obj.reflect(bind=engine)
return engine, metadata_obj
def insert_users():
users = [
['Yisroel', 'Baum', 'yisroel.d.baum@gmail.com', generate_password_hash('12'), 'Admin'],
['Yoni', 'Gerzi', 'yoni@gerzi.com', generate_password_hash('12'), 'User'],
['Shmuli', 'Modes', 'shmuli@modes.com', generate_password_hash('12'), 'User'],
['Emma', 'Baum', 'emma@baum.com', generate_password_hash('12'), 'User'],
['Yisroel', 'Factor', 'yisroel@factor.com', generate_password_hash('12'), 'User'],
['Yaakov', 'Frager', 'yaakov@frager.com', generate_password_hash('12'), 'User'],
['Michael', 'Oshman', 'michael@oshman.com', generate_password_hash('12'), 'User'],
['Shalom', 'Goldberg', 'shalom@goldberg.com', generate_password_hash('12'), 'User'],
['Daniel', 'Caller', 'daniel@caller.com', generate_password_hash('12', 'User')],
]
engine, metadata_obj = engineer()
user_table = Table("user", metadata_obj, autoload_with=engine)
with engine.connect() as conn:
for user in users:
conn.execute(user_table.insert().values(
first_name = user[0],
last_name = user[1],
email = user[2],
password = user[3],
user_type = user[4]
))
conn.commit()
def insert_donations():
engine, metadata_obj = engineer()
donation_table = Table("donation", metadata_obj, autoload_with=engine)
currency_types = ['shekel', 'dollar']
with engine.connect() as conn:
for _ in range(100):
conn.execute(donation_table.insert().values(
currency_type = currency_types[random.randint(1,2)],
amount = random.randint(1,200),
campaign_id=1,
user_id=1
))
conn.commit()
def insert_campaigns():
engine, metadata_obj = engineer()
campaign_table = Table("campaign", metadata_obj, autoload_with=engine)
campaign_titles = ['general campaign', 'yomim noraim 2024', 'pesach kibbudim 2024', 'RH kibbudim 2024']
with engine.connect() as conn:
for title in campaign_titles:
conn.execute(campaign_table.insert().values(title=title))
conn.commit()
def test_selections():
engine, metadata_obj = engineer()
user_table = Table("user", metadata_obj, autoload_with=engine)
donation_table = Table("donation", metadata_obj, autoload_with=engine)
campaign_table = Table("campaign", metadata_obj, autoload_with=engine)
for x in range(10):
print(random.randrange(1,4))
# with engine.connect() as conn:
# campaign_one = conn.execute(select(campaign_table).where(campaign_table.c.id==1)).first()
# donation_one = conn.execute(select(donation_table).where(donation_table.c.id==1)).first()
# user_one = conn.execute(select(user_table).where(user_table.c.id==1)).first()
# print(user_one)
def delete_all():
engine, metadata_obj = engineer()
user_table = Table("user", metadata_obj, autoload_with=engine)
donation_table = Table("donation", metadata_obj, autoload_with=engine)
campaign_table = Table("campaign", metadata_obj, autoload_with=engine)
with engine.connect() as conn:
conn.execute(delete(user_table))
conn.execute(delete(campaign_table))
conn.execute(delete(donation_table))
conn.commit()
def insert_all():
insert_users()
insert_campaigns()
insert_donations()
if __name__ == '__main__':
test_selections()