MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

Có bất kỳ công cụ nào để di chuyển lược đồ cho cơ sở dữ liệu NoSQL không?

Vì cơ sở dữ liệu nosql có thể chứa một lượng lớn dữ liệu nên bạn không thể di chuyển nó theo dạng rdbms thông thường. Trên thực tế, bạn không thể làm điều đó cho rdbms ngay khi dữ liệu của bạn vượt qua một số ngưỡng kích thước. Không thực tế nếu đưa trang web của bạn xuống trong một ngày để thêm trường vào bảng hiện có, và vì vậy với rdbms, bạn sẽ thực hiện các bản vá xấu xí như thêm bảng mới chỉ cho trường và thực hiện các phép nối để truy cập dữ liệu. bạn có thể làm một số điều.

  • Như những người khác đã đề xuất, bạn có thể viết mã của mình để mã sẽ xử lý các 'phiên bản' khác nhau của lược đồ có thể có. điều này thường đơn giản hơn sau đó có vẻ. Nhiều loại thay đổi lược đồ là không đáng kể đối với mã xung quanh. ví dụ:nếu bạn muốn thêm một trường mới vào lược đồ, bạn chỉ cần thêm nó vào tất cả các bản ghi mới và nó sẽ trống trên tất cả các bản ghi cũ (bạn sẽ không nhận được lỗi "trường không tồn tại" hoặc bất cứ điều gì;). nếu bạn cần một giá trị 'mặc định' cho trường trong các bản ghi cũ thì nó được thực hiện quá tầm thường trong mã.
  • Một tùy chọn khác và thực sự là tùy chọn lành mạnh duy nhất về sau với các thay đổi lược đồ không tầm thường như đổi tên trường và thay đổi cấu trúc là lưu trữ schema_version trong bản ghi EACH và có mã để di chuyển dữ liệu từ bất kỳ phiên bản nào sang phiên bản tiếp theo trên ĐỌC . tức là nếu phiên bản giản đồ hiện tại của bạn là 10 và bạn đọc bản ghi từ cơ sở dữ liệu với phiên bản 7, thì lớp db của bạn sẽ gọi là migrate_8, migrate_9 và migrate_10. Bằng cách này, dữ liệu được truy cập sẽ được chuyển dần sang phiên bản mới. và nếu nó không được truy cập, thì ai quan tâm nó là phiên bản nào;)


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Chèn và trả về ID của tài liệu con trong mảng tài liệu con của tài liệu MongoDB

  2. ScaleGrid thông báo dịch vụ lưu trữ MongoDB ở Canada

  3. django.core.exceptions.ImproperlyConfigured:'django_mongodb_engine' không phải là chương trình phụ trợ cơ sở dữ liệu có sẵn

  4. Xóa khóa khỏi tài liệu MongoDB bằng Mongoose

  5. django-nonrel loại trừ trường danh sách khỏi quản trị viên