Logo
Elain.Portfolio
26 tháng 10, 2025

Tìm Hiểu Về Alembic - Thư Viện Migration Cho Python

Tìm Hiểu Về Alembic – Thư Viện Migration Cho Python

Trong phát triển ứng dụng Python, đặc biệt khi dùng SQLAlchemy, việc quản lý thay đổi cơ sở dữ liệu là rất quan trọng. Alembic giúp tạo và quản lý migrations, đảm bảo schema của database luôn đồng bộ với code.

Cài Đặt Alembic

Cài đặt Alembic:

pip install alembic

Tạo cấu trúc dự án Alembic:

alembic init alembic

Thư mục alembic/ sẽ chứa file cấu hình và các migration script.

Cấu Hình Alembic

Trong file alembic.ini, chỉnh sửa database URL:

sqlalchemy.url = postgresql://user:password@localhost/mydatabase

Các migration script sẽ được lưu trong thư mục alembic/versions/.

Tạo Migration Script

Khi model thay đổi, tạo migration script:

alembic revision --autogenerate -m "Add dob column to user table"

Alembic sẽ so sánh model với database và sinh các lệnh SQL cần thiết.

Áp Dụng Migration

Cập nhật database:

alembic upgrade head

Rollback về migration cũ:

alembic downgrade <revision_id>

Ví Dụ Minh Họa

Model User ban đầu:

from sqlalchemy import Column, Integer, String
from sqlalchemy.ext.declarative import declarative_base

Base = declarative_base()

class User(Base):
    __tablename__ = "users"
    id = Column(Integer, primary_key=True)
    name = Column(String(50))
    email = Column(String(120))

Khi muốn thêm cột dob (ngày sinh):

from sqlalchemy import Date

dob = Column(Date)

Chỉ cần tạo migration script và chạy alembic upgrade head, cột dob sẽ được thêm vào bảng users.

Những Lưu Ý Khi Dùng Alembic

  • Luôn tạo migration script trước khi deploy, không chỉnh sửa schema trực tiếp trên production.
  • Kiểm tra kỹ migration script sinh tự động, đặc biệt khi có các thay đổi phức tạp như rename column.
  • Dùng môi trường test để chạy migration trước khi áp dụng trên production.
  • Commit tất cả migration vào Git để đồng bộ với team.
  • Không chỉnh sửa migration đã áp dụng; nếu cần thay đổi hãy tạo migration mới.
  • Cẩn thận khi rollback vì có thể mất dữ liệu (ví dụ khi xóa column hoặc bảng).
  • Hỗ trợ nhiều database, nhưng một số syntax SQL có thể khác nhau giữa các hệ quản trị.

Kết Luận

Alembic giúp quản lý schema database hiệu quả, giảm lỗi và giữ cho database luôn đồng bộ với code. Đây là công cụ gần như không thể thiếu trong các dự án Python sử dụng SQLAlchemy, đặc biệt khi dự án phát triển nhanh và liên tục thay đổi cơ sở dữ liệu.

Related blogs

Quy trình tự động hóa đánh giá CV với Google Apps Script

Quy trình tự động hóa đánh giá CV với Google Apps Script

Tìm hiểu cách sử dụng Google Apps Script để tự động hóa quy trình đánh giá CV, giúp tiết kiệm thời gian và nâng cao hiệu quả công việc.

#appscript#google-sheets
5 thg 7, 2025Đọc thêm
Tìm Hiểu Về Alembic - Thư Viện Migration Cho Python

Tìm Hiểu Về Alembic - Thư Viện Migration Cho Python

Hướng dẫn chi tiết về Alembic, thư viện migration mạnh mẽ cho Python, giúp quản lý và áp dụng các thay đổi trong cơ sở dữ liệu một cách dễ dàng.

#python
16 thg 9, 2025Đọc thêm
Định dạng số thành tiền Việt Nam Đồng trong JavaScript

Định dạng số thành tiền Việt Nam Đồng trong JavaScript

Hướng dẫn cách định dạng số thành tiền Việt Nam Đồng (VND) trong JavaScript một cách đơn giản và hiệu quả.

#javascript
1 thg 10, 2023Đọc thêm