본문 바로가기

728x90
반응형

전체 글

(256)
PostgreSQL: query 기록하고 보기 - log파일로 보기 # /var/log/postgresql PostgreSQL에서 postgresql의 log를 봐보자 OS: ubuntu 22.04 기준 linux: 기본적으로 log들은 /etc/log에서 확인 가능 더보기 cd /etc/log/postgresql 위에서 로그들을 볼 수 있다. * 추가적으로 query들을, 자세하게 볼수 있도록 설정해보자 1. postgresql.conf에 아래와 같이 변경 - 대부분 주석 처리가 되있을 것이므로, 주석을 풀어서 기재하자. 없으면 직접 써줘도 된다. 더보기 log_statement = 'all' 위 설정으로 모든 sql statements에 대한 기록을 해주도록 한다고 한다. (주석으로 none으로 되어 있었음) 더보기 log_parameter_max_length = 0 위 설정은 모든 parameter va..
PostgreSQL: query 기록하고 보기 - table(view)로 보기 # ORM # raw query # extension # pg_stat_statements orm으로 query를 작성한 경우, orm이 실제 query로 어떻게 변했는지를 파악하고 싶을 때가 있다. PostgreSQL의 경우 실제 query를 table 형태로 저장해서 보도록 하자 OS: ubuntu 22.04 기준 1. postgresql.conf 에 shared_preload_libraries를 찾아서 주석을 풀고 다음과 같이 적자 ubuntu 기준 기본 postgresql.conf 위치: /etc/postgresql/[VERSION]/main/postgresql.conf 더보기 shared_preload_libraries = 'pg_stat_statements' 2. 쭉 내려서 아래에 다음도 추가 더보기 pg_stat_statements.track = all pg_stat_stateme..
Linux shell: alias 대신 함수로 동적으로 명령어 실행하기 # dynamic command FastAPI를 실행하는 uvicorn main:app --reload 나 Django를 실행하는 python manage.py runserver 위와 같은 명령어를 실행하는 경우에 너무 길어서 alias 등록을 할 수 있는데, port 번호를 그때그때 원하는 대로 실행시키려면 alias 대신에 함수를 이용하면 된다. 위 두 명령어는 기본적으로 8000 포트로 실행되는데, 포트번호를 기입해서 명령어를 실행하면 해당 포트로 실행이 되도록 bashrc에 등록해보자 FastAPI를 8001번 포트로 실행시킨다 하면 다음과 같다 uvicorn main:app --reload --port 8001 위 명령어들을 shell에 다음과 같이 등록해보자 1. .bashrc 파일 오픈 nano ~/.bashrc 2. 명령..
Keyboard: 다얼유 키보드 블루투스 설정 # A87 Pro fn + 1, 2, 3 으로 슬롯 먼저 정하기 (1, 2, 3 중 어떤 항목을 연결할지 정하고) fn + q 를 3초 가량 누르고 있으면 마우스/블루투스 LED 판이 빨간색으로 반짝반짝 거리면서 블루투스가 잡힘 연결하면 됨
MySQL: No_ZERO_DATE # 0000-00-00 새로운 프로젝트가 이전 버전의 프로젝트 DB에서도 돌아가는지 확인하는 작업 중 아래 오류 발생 ERROR 1067 (42000): Invalid default value for 'SOME_COLUMN' 위 SOME_COLUMN은 date 타입의 컬럼 MySQL에서 date 타입 컬럼의 default value가 0000-00-00으로 할 수 없어서 생기는 오류 (0000-00-00으로 .sql 파일에 DDL 문이 만들어져 있던 것은 해당 값이 가능한 구버전이었거나, 가능하도록 default 값을 변경해준 것으로 추정) 해당 에러는 0000-00-00 과 같은 날짜는 현실에서 존재하지 않는 date 이와 같이 실제로 존재 하지 않는 date를 값으로 입력하는 것을 방지하고 있음 설정을 위와 같이 바꿀 수도..
FastAPI & SQLAlchemy: SQLAlchemy from 1.4 to 2.0 DB 연결 from fastapi import Depends from sqlalchemy import create_engine from sqlalchemy.orm import Session, sessionmaker from typing_extensions import Annotated engine = create_engine(DATABASE_URL) SessionLocal = sessionmaker(autocommit=False, autoflush=False, bind=engine, expire_on_commit=True) async def get_db() -> Session: db = SessionLocal() try: yield db finally: db.close() db = Annotated[Se..
Python: datetime strftime strptime 의미 구분, # 어떤 의미? python 내장 라이브러리인 datetime을 통해서 특정 시간을 문자열로, 문자열을 특정 시간으로 변환 가능 이때, strftime과 strptime이 있는데, 이 의미를 알지 못해서 구분이 잘되지 않아 찾아보았다. strftime은 datetime 형태의 데이터를 문자열로 바꿔주고 strptime은 날짜형태로 되어 있는 문자열을 datetime 데이터로 바꿔준다. strftime: string format time (string format의 time) strptime: string parse time (string을 parse해서 time으로) 이제 헷갈리지 않고 기억이 잘 나지 않으려나
Python: python-dotenv - .env 파일 관련 library # load_dotenv # override 환경변수로 사용할 부분을 .env 파일로 따로 빼서 관리하는 경우에, 파이썬에서 해당 파일에서 변수를 불러오는 방법중의 하나로 python-dotenv 라이브러리가 있다. 설치: pip install python-dotenv from dotenv import load_dotenv import os load_dotenv()# .env에 있는 변수를 환경변수로 불러오기 os.getenv("DEBUG", False) # 환경변수에서 "DEBUG"로 이름이 되어있는 변수의 값 가져오기, 없을경우 False를 default 값으로 사용 위와 같이 하면 일반적으로 된다. 그런데, 잘 작업을 하던 중에 이상한 에러가 발생... # .env DEBUG = "False" # True or False .env 파일에 위와..

728x90
반응형