2010-12-11 38 views
13

Tôi đang cố gắng học CouchDB và tôi có thể tạo các khung nhìn và như vậy trong Futon, nhưng tôi muốn viết các tài liệu thiết kế của mình trên màn hình và tải chúng lên bằng cách sử dụng cURL. 'Definitive Guide' hiển thị các tài liệu nội dung cập nhật với cURL nhưng tất cả các tài liệu thiết kế là Futon hoặc CouchApp.Làm cách nào để tải tài liệu thiết kế lên CouchDB bằng cURL?

Tôi muốn tải xuống tài liệu thiết kế hiện tại về tệp cục bộ, chỉnh sửa tệp, sau đó gửi lại cho CouchDB.

Lệnh cURL để tải xuống và tải lên tài liệu thiết kế CouchDB là gì?

Trả lời

19

Tải tập tin thiết kế "nhiệm vụ" trong cơ sở dữ liệu "dev-nhiệm vụ" nộp "task.json":

curl http://localhost:5984/dev-task/_design/task > task.json 

Một khi tập tin được chỉnh sửa, bạn có thể đặt nó trở lại.

curl -X PUT http://localhost:5984/dev-task/_design/task -d @task.json 

Điều này hoạt động vì task.json chứa số sửa đổi thích hợp. Nếu bạn muốn thay đổi lại tệp, bạn cần phải tải xuống lại tệp trước để nhận số sửa đổi mới nhất.

6

Mặc dù câu trả lời từ Victor Nicollet là đúng, bạn nên xem qua các công cụ CLI như CouchApp. - Dễ dàng bắt đầu và rất hiệu quả. Các công cụ này cũng ổn định, đã đến lúc trưởng thành từ lâu, và không ngừng được cải thiện bởi cộng đồng những người đóng góp.

Tại sao?

  1. Tài liệu thiết kế là một đối tượng JSON và chúng được biết là do chúng quá tải trên trình chỉnh sửa của chúng. Ví dụ - Không có ý kiến, mỗi chuỗi, bao gồm các thuộc tính quan trọng phải được bao bọc trong chuỗi, và vv.
  2. Tài liệu JSON không được thiết kế để chứa hàm. Giải pháp Couch-DB là yêu cầu các chức năng phải được xâu chuỗi - điều làm cho chúng khó sửa đổi. Một trình soạn thảo sẽ được yêu cầu chuyển đổi hàm thành định dạng khả thi, chỉnh sửa và chỉnh sửa lại.
  3. CouchDB yêu cầu tài liệu udpated sẽ khớp với phiên bản hiện tại (và trả lại cho bạn bản kế tiếp khi cập nhật thành công). Điều này yêu cầu trình chỉnh sửa theo dõi các phiên bản và sử dụng chúng mỗi khi muốn áp dụng bản cập nhật.
  4. Tệp đính kèm - ví dụ, tiểu học để tái sử dụng mã giữa các hàm bản đồ hoặc thường được sử dụng cho các ứng dụng được phân phát trực tiếp từ máy chủ web của CouchDB - rất khó quản lý, vì mọi tệp đính kèm thường được tải lên riêng biệt hoặc thậm chí còn lớn hơn.

Giải pháp cho những vấn đề này là tiện ích CLI cho phép trình soạn thảo hoạt động trên các tệp JavaScript bình thường mà sau đó anh ấy có thể đăng nhập vào SCM như các tệp mã giống như cách anh ấy sử dụng, và khi lệnh có công cụ CLI chuyển đổi chúng với một JSON hợp lệ cho anh ta, và tải nó lên CouchDB đích cùng với tất cả các phần đính kèm bạn cần cập nhật, nếu có.

Giải pháp này - sẽ là:

  • CouchApp trong đó là 2 hương vị (python và NodeJS)
  • Kanzo (có nghĩa là trên thực tế nhiều hơn nữa, và không cho bất cứ ai, nhưng chắc chắn nhất Worths nhắc đến)

Cá nhân tôi sử dụng couchapp over NodeJS. Have fun :)

CẬP NHẬT, ~ 2 năm sau

Đây là một công cụ đáng nói, mặc dù tôi sẽ phải nói tôi bios về nó. Được gọi là ddocs. Nó dựa trên cùng một hiệu trưởng như node-couchapp, và nó hướng đến các dòng tích hợp liên tục cũng như phát triển cá nhân. Nó sử dụng một phần được chỉ định trong package.json để giữ thông tin về việc triển khai ddocs và cho phép nhà phát triển/build-server ghi đè bất kỳ cấu hình nào bằng CLI args.

+0

câu trả lời tuyệt vời, nhưng bạn để lại cho chúng tôi treo với "kanzo là nhiều hơn nữa _____" - nhiều hơn nữa những gì ?! – Armand

+0

của nó nhiều hơn một công cụ đơn giản để tải lên một ddoc - tốt, nó gần như là một mô hình. Nhưng tất cả điều này là như vậy trong phạm vi của câu hỏi này, vì vậy về cơ bản - đó là một lời mời để ít nhất hãy xem :) –

Các vấn đề liên quan