mirror of
				https://github.com/graphql-python/graphene.git
				synced 2025-10-30 23:47:55 +03:00 
			
		
		
		
	
		
			
				
	
	
		
			40 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			40 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| from sqlalchemy import Column, DateTime, ForeignKey, Integer, String, func
 | |
| from sqlalchemy.orm import backref, relationship
 | |
| 
 | |
| from database import Base
 | |
| 
 | |
| 
 | |
| class Department(Base):
 | |
|     __tablename__ = 'department'
 | |
|     id = Column(Integer, primary_key=True)
 | |
|     name = Column(String)
 | |
| 
 | |
| 
 | |
| class Role(Base):
 | |
|     __tablename__ = 'roles'
 | |
|     role_id = Column(Integer, primary_key=True)
 | |
|     name = Column(String)
 | |
| 
 | |
| 
 | |
| class Employee(Base):
 | |
|     __tablename__ = 'employee'
 | |
|     id = Column(Integer, primary_key=True)
 | |
|     name = Column(String)
 | |
|     # Use default=func.now() to set the default hiring time
 | |
|     # of an Employee to be the current time when an
 | |
|     # Employee record was created
 | |
|     hired_on = Column(DateTime, default=func.now())
 | |
|     department_id = Column(Integer, ForeignKey('department.id'))
 | |
|     role_id = Column(Integer, ForeignKey('roles.role_id'))
 | |
|     # Use cascade='delete,all' to propagate the deletion of a Department onto its Employees
 | |
|     department = relationship(
 | |
|         Department,
 | |
|         backref=backref('employees',
 | |
|                         uselist=True,
 | |
|                         cascade='delete,all'))
 | |
|     role = relationship(
 | |
|         Role,
 | |
|         backref=backref('roles',
 | |
|                         uselist=True,
 | |
|                         cascade='delete,all'))
 |