Alembic이 적용된 DB에는 적용된 Revision을 기록하기 위한 `alembic_version`과 같은 테이블이 생성되게 된다. (큰 상관이 없을 수도 있지만) 서비스와 관련된 테이블과 같은 곳에 있는 것은 구분을 어렵게 하므로 다음 방법을 통해 Alembic과 관련된 테이블을 별도의 스키마에 저장할 수 있다.
# In env.py,
from sqlalchemy.schema import CreateSchema
def run_migrations_online():
...
with connectable.connect() as connection:
context.configure(
connection=connection,
target_metadata=target_metadata,
include_schemas=True, # 추가
version_table_schma="schema_name", # 추가
)
# Schema가 존재하지 않을 경우 생성하도록 아래 코드 추가
if not connection.dialect.has_schema(connection, "schema_name"):
connection.execute(CreateSchema("schema_name"))
...
잘못된 내용, 오타, 부정확한 문장 등 어떤 피드백이든 환영합니다. 감사합니다.
References
- https://blog.neonkid.xyz/257
- https://stackoverflow.com/questions/50927740/sqlalchemy-create-schema-if-not-exists
'Data' 카테고리의 다른 글
SQLAlchemy. 조건식의 원하는 곳에 괄호 추가하기 (0) | 2023.09.04 |
---|---|
SQLAlchemy. CASE WHEN 구문 with Label (0) | 2023.09.02 |
Alembic. 동적으로 DB 접속 정보 만들기 (0) | 2023.09.02 |