Commit 796defe5 authored by vidya.m's avatar vidya.m

firstcommit

parents
POSTGRESQL_URI = postgresql://interns:interns%40123@192.168.0.220:5432/internsb2
\ No newline at end of file
[SERVICE]
host="192.168.0.220"
port="5432"
database="internsb2"
user="interns"
password="interns@123"
from scripts.service.med import med
if __name__ == "__main__":
med()
\ No newline at end of file
class Psql:
# Add a default value for the missing section
host = "192.168.0.220"
port = 5432
user = "interns"
password = "interns@123"
database = "internsb2"
# Add a default value for the missing section
postgresql = f"postgresql://interns:interns%40123@192.168.0.220:5432/internsb2"
class Service:
# Add a default value for the missing section
port = 5432
\ No newline at end of file
import sqlalchemy
from sqlalchemy import create_engine, MetaData
from sqlalchemy.orm import sessionmaker
from scripts.config.app_config import Psql
engine = create_engine(Psql.postgresql)
LocalSession = sessionmaker(bind=engine)
session = LocalSession()
Base = sqlalchemy.orm.declarative_base()
metadata = MetaData()
\ No newline at end of file
from scripts.core.db.database import session
from scripts.core.schema.med import User, PhoneNumber, Order, OrderItem
from scripts.service.med import data
for user_data in data:
user = User(
name=user_data.get('name'),
age=user_data.get('age'),
email=user_data.get('email')
)
# Create PhoneNumber instances for each phone number in the JSON file
phone_numbers = user_data.get('phone_numbers')
if phone_numbers:
user.phone_numbers = [
PhoneNumber(
type=phone_data.get('type'),
number=phone_data.get('number'),
extension=phone_data.get('extension')
)
for phone_data in phone_numbers
]
# Create Order instances for each order in the JSON file
orders = user_data.get('orders')
if orders:
user.orders = [
Order(
date=order_data.get('date'),
items=[
OrderItem(
item_id=item_data.get('id'),
name=item_data.get('name'),
price=item_data.get('price'),
quantity=item_data.get('quantity')
)
for item_data in order_data.get('items', [])
]
)
for order_data in orders
]
# Add the user to the session
session.add(user)
# Commit the session to save the changes
session.commit()
# schema
from sqlalchemy import Column, Integer, String, ForeignKey, Float, create_engine
from sqlalchemy.dialects.postgresql import JSONB
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import relationship
engine = create_engine('postgresql://interns:interns%40123@192.168.0.220:5432/internsb2')
Base = declarative_base()
class Medication(Base):
__tablename__ = 'medication'
id = Column(Integer, primary_key=True,autoincrement=True)
category = Column(String)
name = Column(String)
strength = Column(String)
dose = Column(String)
route = Column(String)
sig = Column(String)
pill_count = Column(String)
refills = Column(String)
selected_user_info = Column(JSONB)
@property
def category(self):
return self._category
@category.setter
def category(self, value):
self._category = value.title()
class User(Base):
__tablename__ = 'users'
id = Column(Integer, primary_key=True)
medication_id = Column(Integer, ForeignKey(Medication.id))
name = Column(String)
age = Column(Integer)
email = Column(String)
street = Column(String)
city = Column(String)
state = Column(String)
zip = Column(String)
phone_numbers = relationship("PhoneNumber", cascade="all, delete-orphan")
orders = relationship("Order", cascade="all, delete-orphan")
class PhoneNumber(Base):
__tablename__ = 'phone_numbers'
id = Column(Integer, primary_key=True)
user_id = Column(Integer, ForeignKey(User.id))
type = Column(String)
number = Column(String)
extension = Column(String)
class Order(Base):
__tablename__ = 'orders'
id = Column(Integer, primary_key=True)
user_id = Column(Integer, ForeignKey(User.id))
date = Column(String)
items = relationship("OrderItem", cascade="all, delete-orphan")
class OrderItem(Base):
__tablename__ = 'order_items'
id = Column(Integer, primary_key=True)
order_id = Column(Integer, ForeignKey(Order.id))
item_id = Column(Integer)
name = Column(String)
price = Column(Float)
quantity = Column(Integer)
Base.metadata.create_all(engine)
import json
from sqlalchemy.orm import sessionmaker
from scripts.core.db.database import engine, Base
from scripts.core.schema.med import User, PhoneNumber, Order, OrderItem
Session = sessionmaker(bind=engine)
session = Session()
# Load the data from the JSON file
with open('C:/Users/vidya.m/Desktop/sample.json', 'r') as f:
data = json.load(f)
def med():
for user_data in data:
user = User(
name=user_data['name'],
age=user_data['age'],
email=user_data['email'],
street=user_data['address']['street'],
city=user_data['address']['city'],
state=user_data['address']['state'],
zip=user_data['address']['zip'],
)
# Create PhoneNumber instances for each phone number in the JSON file
for phone_data in user_data['phone_numbers']:
phone = PhoneNumber(
type=phone_data['type'],
number=phone_data['number'],
extension=phone_data.get('extension'),
)
user.phone_numbers.append(phone)
# Create Order instances for each order in the JSON file
for order_data in user_data['orders']:
order = Order(
date=order_data['date'],
)
# Create OrderItem instances for each item in the order
for item_data in order_data['items']:
item = OrderItem(
item_id=item_data['id'],
name=item_data['name'],
price=item_data['price'],
quantity=item_data['quantity'],
)
order.items.append(item)
user.orders.append(order)
session.add(user)
Base.metadata.create_all(engine)
session.commit()
from sqlalchemy.dialects.postgresql import psycopg2
class Connection:
conn = psycopg2.connect(
host="192.168.0.220",
port="5432",
database="internsb2",
user="interns",
password="interns@123"
)
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment