Database 3

SQLAlchemy _ ForeignKey 로 연결된 개체 한 번에 삭제하기

SQLAlchemy에서는 cascading 옵션을 활용하여 관계된 개체(Entity)를 한 번에 삭제할 수 있다. 방법 1. 부모 relationship 에서 cascade 매개변수 지정 두 테이블 간의 관계를 정의할 때, 상위 개체와 하위 개체가 함께 삭제되도록 cascade 매개변수를 지정할 수 있다. from sqlalchemy import Column, Integer, ForeignKey from sqlalchemy.orm import relationship class Parent(Base): __tablename__ = 'parent' id = Column(Integer, primary_key=True) children = relationship('Child', cascade='delete') ..

SQLAlchemy, ‘PasswordType’으로 손쉽게 암호화하자

PasswordType 이란? sqlalchemy를 이용해 model 클래스에서 PasswordType을 적용할 수 있습니다. PasswordType을 적용한 model은 사용자가 입력한 패스워드를 자동으로 암호하하여 데이터베이스에 저장합니다. 모델 컬럼 타입을 지정한 것만으로 개발자가 따로 암호화 로직을 구현하지 않아도 되는 것입니다. 패스워드 암호화 저장 PasswordType을 사용하기 위해서는 먼저 SQLAlchemy-Utils를 설치해야합니다. pip install sqlalchemy-utils 설치가 완료되었다면 model파일에 import 해줍니다. # models.py from sqlalchemy_utils import PasswordType import 후 아래에 User model을 작..

파일 시스템으로 DB 인서트 하는 중

목표 파일 시스템을 활용하여 수신 데이터를 저장해두었다가 벌크로 DB에 저장하는 로직 구현하기 문제 파일 시스템으로 csv파일에 데이터를 입력해야 함 DB에 벌크로 입력하는 코드를 작성해야 함 csv에서 DB로 벌크 입력한 후 해당 파일의 내용은 삭제해야 함 최신 데이터 100개를 가져오는 로직을 구현해야 함 행동 csv파일을 생성하고 데이터를 입력하는 로직 구현함 sql문으로 벌크 저장하는 로직 구현함 csv의 전체 데이터를 읽어 들여 DB에 입력하는 기능 구현함 DB에서 최근 데이터 100개 불러오는 로직 구현함 고민 csv 데이터를 요청 때마다 초기화 해주지 않으면 DB로 중복해서 저장될 우려가 있음 csv 전체 데이터를 한 번에 저장하기 때문에 요청과는 별개로 불필요한 부하가 생길 수 있음 앞으로..

Log/Today 2022.01.14