def save_market_to_db(msg_data: dict): """ - Получить запись текущего юзера (запрос в базу по имени и взять одну запись, если исключение что нет записи, то создать юзера нового) - Получить все записи маркетов текущего юзера - :return: """ print('----now------') print(msg_data) session = Session() user = get_or_create(session, User, user_name=msg_data['user']['user_name']) user.free_slots = int(msg_data['market']['free_slots']) user.telegram_id = int(msg_data['user']['telegram_id']) user.name = str(msg_data['user']['name']) all_markets_user = session.query(Market).filter_by(user=user).all() # удалить все магазины текущего юзера из базы for market in all_markets_user: session.delete(market) session.commit() res_dict = msg_data['market']['resources'] current_resources = [get_or_create(session, Resource, name=resource) for resource in res_dict.keys()] current_markers = [Market(user=user, resource=res, count=res_dict[res.name], last_update=msg_data['user']['last_update']) for res in current_resources] session.add_all(current_markers) session.commit()
def add_test_data(): Base.metadata.create_all(bind=engine) session = Session() res_pelt = Resource(name='Pelt') res_coal = Resource(name='Coal') res_stick = Resource(name='Stick') user_artem = User(name='Artem', user_name='artofey') user_maga = User(name='Maga', user_name='godzilla4') market_artem_pelt = Market(resource=res_pelt, user=user_artem, count=1000) market_artem_coal = Market(resource=res_coal, user=user_artem, count=2000) market_maga_stick = Market(resource=res_stick, user=user_maga, count=3000) session.add_all( [ market_artem_coal, market_artem_pelt, market_maga_stick, ] ) session.commit()
from app.models import User, Post, Comment, Vote from app.db import Session, Base, engine # Drop and rebuild tables. Base.metadata.drop_all(engine) Base.metadata.create_all(engine) # Populate initial values. db = Session() # Insert users. db.add_all([ User(username='******', email='*****@*****.**', password='******'), User(username='******', email='*****@*****.**', password='******'), User(username='******', email='*****@*****.**', password='******'), User(username='******', email='*****@*****.**', password='******'), User(username='******', email='*****@*****.**', password='******') ]) db.commit() # Insert posts. db.add_all([ Post(title='Donec posuere metus vitae ipsum', post_url='https://buzzfeed.com/in/imperdiet/et/commodo/vulputate.png', user_id=1), Post(title='Morbi non quam nec dui luctus rutrum', post_url='https://nasa.gov/donec.json', user_id=1), Post(title='Donec diam neque, vestibulum eget, vulputate ut, ultrices vel, augue', post_url='https://europa.eu/parturient/montes/nascetur/ridiculus/mus/etiam/vel.aspx', user_id=2), Post(title='Nunc purus', post_url='http://desdev.cn/enim/blandit/mi.jpg', user_id=3), Post(title='Pellentesque eget nunc', post_url='http://google.ca/nam/nulla/integer.aspx', user_id=4) ]) db.commit()
def fill_db(number): sess = Session() sess.add_all(get_random_users(number)) sess.commit()