#Quản lý đa môi trường
Nếu bạn duy trì nhiều ứng dụng NocoBase như dev, test, staging, prod, v.v., bạn có thể lưu chúng dưới dạng CLI env tương ứng. Hầu hết các lệnh nb trong tương lai sẽ hoạt động trên env hiện tại theo mặc định, vì vậy điều quan trọng là phải xác nhận bạn đang sử dụng env nào trước khi thực thi các lệnh như nb app, nb api và nb db.
Bắt đầu từ phiên bản này, CLI chia khái niệm thành current env và last env. Bạn thường chỉ cần quan tâm đến current env - môi trường mà thời gian chạy shell hoặc tác nhân hiện tại đang sử dụng. CLI sẽ chỉ quay lại last env chung khi chế độ phiên không được bật.
Lập chỉ mục nhanh
Theo mặc định, trước tiên bạn nên thực thi nb session setup. Bằng cách này, mỗi thiết bị đầu cuối, hệ vỏ khác nhau hoặc thời gian chạy tác nhân khác nhau có thể duy trì current env của riêng mình và chúng sẽ không dễ dàng ảnh hưởng lẫn nhau trong các hoạt động song song.
Nếu chế độ phiên không được bật, nb env use sẽ quay lại cập nhật last env toàn cầu. Trong trường hợp này, nếu một thiết bị đầu cuối cắt môi trường thì thiết bị đầu cuối kia cũng có thể bị ảnh hưởng.
Tạo nhiều môi trường
Nếu bạn muốn tạo hoặc khôi phục ứng dụng cục bộ, chỉ cần sử dụng nb init. Nó sẽ hoàn tất quá trình khởi tạo và lưu kết quả vào một môi trường CLI mới.
Nếu ứng dụng đã tồn tại và bạn chỉ muốn kết nối nó với CLI thì việc sử dụng nb env add thường đơn giản hơn:
Cái trước thiên về "khởi tạo một môi trường", trong khi cái sau thiên về "đăng ký một môi trường hiện có". Nếu bạn chỉ đang kết nối với một ứng dụng hiện có, chỉ cần sử dụng nb env add theo mặc định.
Xem môi trường đã cấu hình
Trước tiên hãy sử dụng nb env list để xem env nào đã được lưu cục bộ:
Lệnh này chỉ hiển thị chính cấu hình và không chủ động kiểm tra trạng thái ứng dụng. Khi bạn muốn xem cả trạng thái kết nối và xác thực, hãy sử dụng nb env status --all:
Bạn thường sẽ thấy các giá trị trạng thái như ok, auth failed, unreachable.
Chuyển đổi môi trường hiện tại
Sử dụng nb env use để chuyển đổi môi trường:
Sau khi quá trình chuyển đổi hoàn tất, các lệnh tiếp theo bỏ qua --env sẽ sử dụng env này theo mặc định.
Kiểm tra môi trường hiện tại
Nếu bạn không chắc chắn lệnh hiện tại sẽ rơi vào môi trường nào, trước tiên hãy thực hiện hai lệnh sau:
nb env current được sử dụng để xem tên, nb env status được sử dụng để xem liệu env hiện tại có thể truy cập được hay không và việc xác thực có bình thường hay không.
Xem chi tiết của một env
Nếu bạn muốn xem cấu hình nào được lưu trong một env nhất định, hãy sử dụng nb env info:
Trong số đó, --field chỉ phù hợp để lấy một giá trị trong tập lệnh. --show-secrets sẽ hiển thị thông tin nhạy cảm như mã thông báo và mật khẩu ở dạng văn bản thuần túy. Chỉ sử dụng chúng khi bạn rõ ràng cần khắc phục sự cố.
Cập nhật cấu hình env
nb env update được sử dụng để điều chỉnh cấu hình của env đã lưu. Chẳng hạn như địa chỉ API, phương thức xác thực, nguồn mã nguồn, cổng ứng dụng và các tham số cơ sở dữ liệu. Sau khi cập nhật hoàn tất, CLI sẽ tự động xử lý các bước tiếp theo dựa trên những thay đổi.
Nếu bạn chỉ muốn CLI đồng bộ lại theo trạng thái mới nhất của env hiện tại, chỉ cần viết như thế này:
Nếu bạn muốn sửa đổi thông tin kết nối hoặc cấu hình cục bộ được lưu bởi env này, bạn có thể đưa các tham số một cách rõ ràng:
Ở đây trước tiên bạn có thể nhớ lại phán quyết mặc định:
- Để sửa đổi thông tin kết nối hoặc cấu hình cục bộ được lưu bởi env, hãy sử dụng
nb env update - Giao diện ứng dụng, plug-in hoặc khả năng sẵn có CLI vừa thay đổi, bạn cũng có thể thực hiện lại
nb env update - Trạng thái đăng nhập đã hết hạn hoặc bạn cần thực hiện lại quá trình xác thực, hãy sử dụng
nb env auth - Để xem nội dung hiện được lưu, hãy sử dụng
nb env info
Nếu bạn thay đổi cấu hình đang chạy cục bộ như app-port, timezone và db-*, update sẽ chỉ thay đổi giá trị đã lưu và sẽ không tự động khởi động lại ứng dụng. Nói chung, nb app restart --env <name> sẽ được thực thi sau; nếu thay đổi liên quan đến cơ sở dữ liệu tích hợp do CLI quản lý, hãy sử dụng nb app restart --env <name> --with-db.
Xác thực lại
Nếu env đã được lưu nhưng trạng thái đăng nhập đã hết hạn hoặc bạn muốn chuyển đổi phương thức xác thực, bạn có thể xác thực lại:
Khi tên môi trường bị bỏ qua, CLI sẽ sử dụng env hiện tại. Sau khi xác thực hoàn tất, CLI sẽ tự động xử lý việc đồng bộ hóa tiếp theo.
Xóa môi trường
Những kịch bản này là khó hiểu nhất. Trước tiên bạn có thể nhớ một đề xuất mặc định:
- Nếu bạn chỉ muốn dừng ứng dụng, hãy sử dụng
nb app stop - Tôi cũng muốn dừng thời gian chạy cơ sở dữ liệu tích hợp trên máy hiện tại, hãy sử dụng
nb app stop --with-db - Nếu bạn chắc chắn rằng env này không còn cần thiết nữa nhưng trước tiên bạn muốn giữ lại bộ nhớ và tệp ứng dụng cục bộ, hãy sử dụng
nb env remove - Dọn dẹp ngay cả tài nguyên lưu trữ cục bộ và sử dụng
nb env remove --purge
Nếu bạn chỉ muốn xóa cấu hình env đã lưu:
Nếu đó là env cục bộ hoặc được lưu trữ trên Docker và bạn cũng muốn dọn sạch các tài nguyên đang chạy và dữ liệu lưu trữ trên máy cục bộ, bạn có thể thêm --purge:
Ở chế độ không tương tác, nb env remove cần được chuyển vào --force một cách rõ ràng:
--purge sẽ chỉ dọn sạch các tài nguyên do CLI quản lý trên máy hiện tại. Đối với env API từ xa, nó sẽ không tự xóa dịch vụ từ xa.
Nếu bạn chỉ muốn dừng ứng dụng và cơ sở dữ liệu tích hợp do CLI quản lý, chỉ cần viết:
Nếu bạn muốn xóa env này nhưng vẫn muốn giữ các tệp ứng dụng lưu trữ và cục bộ:
Nếu bạn thực sự muốn dọn sạch nội dung được lưu trữ nguyên gốc của env này, hãy thêm --purge:
Đối với npm/Git env cục bộ được quản lý bằng các lượt tải xuống CLI, --purge cũng xóa các tệp ứng dụng cục bộ được lưu trữ trên máy chủ CLI. Đối với HTTP hoặc SSH env, nó sẽ chỉ xóa cấu hình env được lưu trong CLI và sẽ không xóa chính dịch vụ bên ngoài.

