DJANGO
CÁC CHỦ ĐỀ
BÀI MỚI NHẤT
MỚI CẬP NHẬT

Thông báo: Download 4 khóa học Python từ cơ bản đến nâng cao tại đây.

Sử dụng lệnh dumpdata trong Django với Python

Việc quản lý dữ liệu giữa các môi trường khác nhau, chẳng hạn như từ môi trường thử nghiệm đến môi trường sản xuất, là một nhu cầu thiết yếu. Django, một framework web phổ biến, cung cấp nhiều công cụ tốt để thực hiện các tác vụ này, và lệnh dumpdata là một trong số đó. Trong bài viết này, bạn sẽ học cách sử dụng lệnh dumpdata của Django để xuất cơ sở dữ liệu ra các file, giúp bạn dễ dàng chuyển dữ liệu giữa các cơ sở dữ liệu và môi trường khác nhau một cách hiệu quả và linh hoạt.

test php

banquyen png
Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thức.

Lệnh Django Dumpdata là gì?

Đôi khi, bạn muốn chuyển một số dữ liệu chung từ cơ sở dữ liệu thử nghiệm sang cơ sở dữ liệu sản xuất. Để làm điều đó, bạn có thể sử dụng lệnh dumpdata để xuất dữ liệu từ cơ sở dữ liệu thử nghiệm ra một file và nhập nó vào cơ sở dữ liệu sản xuất bằng lệnh loaddata.

Lệnh dumpdata có nhiều tùy chọn cho phép bạn:

  • Xuất tất cả các thể hiện của mô hình từ tất cả các ứng dụng (toàn bộ cơ sở dữ liệu) ra một file.
  • Xuất tất cả các thể hiện của mô hình từ một ứng dụng ra một file.
  • Xuất một số thể hiện của mô hình (một số bảng trong cơ sở dữ liệu) ra một file.

Định dạng của file đầu ra có thể là xml, json, jsonl, hoặc yaml. Ví dụ sau đây xuất toàn bộ cơ sở dữ liệu ra một file data.json:

Bài viết này được đăng tại [free tuts .net]

python manage.py dumpdata > data.json

Nếu bạn mở file data.json, bạn sẽ thấy rất nhiều dữ liệu. Ví dụ, đoạn sau đây hiển thị thể hiện của mô hình Employee:

{
    "model": "hr.employee",
    "pk": 5,
    "fields": {
      "first_name": "freetuts",
      "last_name": ".net",
      "contact": null,
      "department": 1,
      "compensations": [1, 2]
    }
}

Mô hình mẫu chứa các thông tin sau:

  • Tên mô hình (hr.employee).
  • Giá trị khóa chính (pk).
  • Các trường (first_name, last_name, contact, department, và compensations) của mô hình Employee.

Nếu bạn muốn xuất toàn bộ cơ sở dữ liệu ra định dạng khác như XML, bạn cần chỉ định tùy chọn format:

python manage.py dumpdata --format xml > data.xml

Xuất dữ liệu từ một ứng dụng trong Django

Để xuất dữ liệu của một ứng dụng cụ thể, bạn chỉ định tên ứng dụng:

python manage.py dumpdata app_name > filename.json

Ví dụ, lệnh sau đây xuất các thể hiện của mô hình trong ứng dụng hr:

python manage.py dumpdata hr > hr.json

Xuất dữ liệu từ một mô hình trong Django

Để xuất dữ liệu của một bảng cụ thể, bạn chỉ định tên ứng dụng và tên mô hình như sau:

python manage.py dumpdata app_name.model_name > filename

Ví dụ, lệnh sau đây xuất tất cả các thể hiện của bảng Employee trong ứng dụng HR:

python manage.py dumpdata hr.employee > hr_employee.json

Xuất dữ liệu bằng cách loại trừ một hoặc nhiều mô hình trong Django

Đôi khi, bạn muốn xuất dữ liệu từ tất cả các mô hình trừ một hoặc nhiều mô hình. Trong trường hợp này, bạn có thể sử dụng tùy chọn --exclude:

python manage.py dumpdata --exclude app_name.model_name > filename

Lưu ý rằng lệnh có thể chứa nhiều tùy chọn --exclude để bạn có thể loại trừ nhiều mô hình.

Ví dụ, lệnh sau đây xuất dữ liệu từ toàn bộ cơ sở dữ liệu trừ mô hình contact:

python manage.py dumpdata --exclude hr.contact > data.json

Lệnh sau xuất dữ liệu từ toàn bộ cơ sở dữ liệu trừ các mô hình contact và department:

python manage.py dumpdata --exclude hr.contact --exclude hr.department > data.json

Kết bài

Lệnh dumpdata của Django là một công cụ mạnh mẽ và linh hoạt giúp bạn xuất dữ liệu từ cơ sở dữ liệu ra các file. Việc sử dụng lệnh này không chỉ giúp bạn dễ dàng sao lưu và chuyển dữ liệu giữa các môi trường mà còn hỗ trợ bạn trong việc kiểm tra, phát triển và triển khai ứng dụng một cách hiệu quả. Bằng cách tận dụng các tùy chọn của lệnh dumpdata, bạn có thể xuất dữ liệu từ toàn bộ cơ sở dữ liệu, từ một ứng dụng cụ thể, hoặc từ một mô hình cụ thể, cũng như loại trừ một hoặc nhiều mô hình khỏi quá trình xuất dữ liệu. Hiểu và sử dụng thành thạo lệnh dumpdata sẽ là một phần quan trọng giúp bạn quản lý dữ liệu trong dự án Django của mình một cách dễ dàng và hiệu quả.

Cùng chuyên mục:

Hướng dẫn xây dựng Command-Line Interface (CLI) bằng Quo trong Python

Hướng dẫn xây dựng Command-Line Interface (CLI) bằng Quo trong Python

Hướng dẫn toàn diện về module datetime trong Python

Hướng dẫn toàn diện về module datetime trong Python

Cách truy cập và thiết lập biến môi trường trong Python

Cách truy cập và thiết lập biến môi trường trong Python

Lớp dữ liệu (Data Classes) trong Python với decorator @dataclass

Lớp dữ liệu (Data Classes) trong Python với decorator @dataclass

Từ khóa yield trong Python

Từ khóa yield trong Python

Sự khác biệt giữa sort() và sorted() trong Python

Sự khác biệt giữa sort() và sorted() trong Python

Sử dụng Poetry để quản lý dependencies trong Python

Sử dụng Poetry để quản lý dependencies trong Python

Định dạng chuỗi Strings trong Python

Định dạng chuỗi Strings trong Python

Một tác vụ phổ biến khi làm việc với danh sách trong Python

Một tác vụ phổ biến khi làm việc với danh sách trong Python

Làm việc với các biến môi trường trong Python

Làm việc với các biến môi trường trong Python

Sự khác biệt giữa set() và frozenset() trong Python

Sự khác biệt giữa set() và frozenset() trong Python

Sự khác biệt giữa iterator và iterable trong Python

Sự khác biệt giữa iterator và iterable trong Python

Cách làm việc với file tarball/tar trong Python

Cách làm việc với file tarball/tar trong Python

Chuyển đổi kiểu dữ liệu trong Python

Chuyển đổi kiểu dữ liệu trong Python

Sự khác biệt giữa toán tử == và is trong Python

Sự khác biệt giữa toán tử == và is trong Python

Làm việc với file ZIP trong Python

Làm việc với file ZIP trong Python

Cách sử dụng ThreadPoolExecutor trong Python

Cách sử dụng ThreadPoolExecutor trong Python

Sự khác biệt giữa byte objects và string trong Python

Sự khác biệt giữa byte objects và string trong Python

Xử lý độ chính xác các hàm floor, ceil, round, trunc, format  trong Python

Xử lý độ chính xác các hàm floor, ceil, round, trunc, format trong Python

Cách lặp qua nhiều list với hàm zip() trong Python

Cách lặp qua nhiều list với hàm zip() trong Python

Top