Mar-27-2022, 06:35 PM
Hi!
Please help me with the error below.
Please help me with the error below.
Error: Base.metadata.create_all(engine)
AttributeError: 'function' object has no attribute 'metadatarepository -> users.pyfrom Model.Domain.users import Users
from sqlalchemy.orm import sessionmaker
from datetime import datetime
from Utils.utils import Base, engine
class DBUsersRepository:
def __init__(self):
self.session = sessionmaker(engine)()
# Create new user
def add_user(self, user_id, first_name, last_name, email_name, phone_number, address, date_of_birth, join_date):
new_user = Users(
user_id=user_id,
first_name=first_name,
last_name=last_name,
email_name=email_name,
address=address,
phone_number=phone_number,
date_of_birth=date_of_birth,
join_date=join_date
)
self.session.add(new_user)
self.session.commit()
if __name__ == '__main__':
Base.metadata.create_all(engine)
user_repo = DBUsersRepository()
user_repo.add_user(
user_id='1234567890123',
first_name='fname',
last_name='lname',
email_name='[email protected]',
address='address1',
phone_number=757271432,
date_of_birth='2000-22-10',
join_date=datetime.now()
)Utils.pyfrom sqlalchemy.ext.declarative import declarative_base
from sqlalchemy import create_engine
Base = declarative_base
engine = create_engine('mysql+pymysql://root@localhost:3306/BankApp')domain -> users.pyfrom sqlalchemy.ext.declarative import declarative_base
from sqlalchemy import Column, String, Integer
from sqlalchemy.types import DateTime
Base = declarative_base()
class Users(Base):
__tablename__ = 'users'
user_id = Column(String(13), primary_key=True)
first_name = Column(String(30), nullable=False)
last_name = Column(String(30), nullable=False)
email_name = Column(String(50), nullable=False)
address = Column(String(50), nullable=False)
phone_number = Column(String(10), nullable=False)
date_of_birth = Column(DateTime, nullable=False)
join_date = Column(DateTime, nullable=False)
def __repr__(self):
return f'user id = {self.user_id}\n' \
f'first name = {self.first_name}\n' \
f'last name = {self.last_name}\n' \
f'email = {self.email_name}\n' \
f'phone = {self.phone_number}\n' \
f'date of birth = {self.date_of_birth}\n' \
f'join date = {self.join_date}'
