Cách thiết lập thủ công server Prisma trên Ubuntu 18.04
Prisma là lớp dữ liệu thay thế các công cụ lập bản đồ quan hệ đối tượng (ORM) truyền thống trong ứng dụng của bạn. Cung cấp hỗ trợ cho cả việc xây dựng server GraphQL cũng như API REST, Prisma đơn giản hóa việc truy cập database với trọng tâm là an toàn kiểu và cho phép di chuyển database khai báo . An toàn kiểu giúp giảm thiểu lỗi mã tiềm ẩn và sự không nhất quán, trong khi di chuyển database khai báo cho phép bạn lưu trữ mô hình dữ liệu của bạn trong kiểm soát version . Các tính năng này giúp các nhà phát triển giảm bớt thời gian tập trung vào việc cài đặt quy trình truy cập database , di chuyển và quản lý dữ liệu.Bạn có thể triển khai server Prisma, hoạt động như một proxy cho database của bạn, theo một số cách và lưu trữ nó từ xa hoặc local . Thông qua dịch vụ Prisma, bạn có thể truy cập dữ liệu và kết nối với database của bạn bằng API GraphQL, cho phép các hoạt động thời gian thực và khả năng tạo, cập nhật và xóa dữ liệu. GraphQL là một ngôn ngữ truy vấn cho các API cho phép user gửi các truy vấn để truy cập vào dữ liệu chính xác mà họ yêu cầu từ server của họ. Server Prisma là một thành phần độc lập nằm trên database của bạn.
Trong hướng dẫn này, bạn sẽ cài đặt thủ công server Prisma trên Ubuntu 18.04 và chạy một truy vấn GraphQL thử nghiệm trong GraphQL Playground . Bạn sẽ lưu trữ mã cài đặt và phát triển Prisma tại local - nơi bạn thực sự sẽ xây dựng ứng dụng của bạn - trong khi chạy Prisma trên server từ xa của bạn. Bằng cách chạy qua cài đặt theo cách thủ công, bạn sẽ hiểu sâu hơn và khả năng tùy chỉnh của cơ sở hạ tầng cơ bản trong cài đặt của bạn.
Trong khi hướng dẫn này bao gồm các bước thủ công để triển khai Prisma trên server Ubuntu 18.04, bạn cũng có thể thực hiện việc này theo cách tự động hơn với Docker Machine theo hướng dẫn này trên trang của Prisma.
Lưu ý : Cài đặt được mô tả trong phần này không bao gồm các tính năng mà bạn thường mong đợi từ các server sẵn sàng production , chẳng hạn như backup tự động và chuyển đổi dự phòng đang hoạt động.
Yêu cầu
Để hoàn thành hướng dẫn này, bạn cần :
- Server Ubuntu 18.04 được cài đặt theo Hướng dẫn cài đặt server ban đầu , bao gồm cả user không phải root có quyền sudo .
- Docker được cài đặt trên server của bạn. Bạn có thể đạt được điều này theo Bước 1 của hướng dẫn Cài đặt Docker trên Ubuntu 18.04 .
- Docker Compose đã được cài đặt. Bạn có thể tìm thấy hướng dẫn cho việc này trong Bước 1 của Cài đặt Docker Compose .
- Node.js đã được cài đặt trên server của bạn. Bạn có thể thực hiện điều này bằng cách xem qua phần PPA của hướng dẫn Cài đặt Node.js.
Bước 1 - Khởi động Server Prisma
Prisma CLI là công cụ chính được sử dụng để triển khai và quản lý các dịch vụ Prisma của bạn. Để khởi động các dịch vụ, bạn cần cài đặt cơ sở hạ tầng cần thiết, bao gồm server Prisma và database để nó kết nối.
Docker Compose cho phép bạn quản lý và chạy các ứng dụng đa containers . Bạn sẽ sử dụng nó để cài đặt cơ sở hạ tầng cần thiết cho dịch vụ Prisma.
Bạn sẽ bắt đầu bằng cách tạo file docker-compose.yml
để lưu trữ cấu hình dịch vụ Prisma trên server của bạn.Bạn sẽ sử dụng file này để tự động tạo Prisma, một database được liên kết và cấu hình các chi tiết cần thiết, tất cả chỉ trong một bước. Khi file được tạo ra bằng Docker Compose, nó sẽ cấu hình password cho database của bạn, vì vậy hãy đảm bảo thay thế password cho managementAPIsecret
MYSQL_ROOT_PASSWORD
và MYSQL_ROOT_PASSWORD
bằng một thứ gì đó an toàn. Chạy lệnh sau để tạo và chỉnh sửa file docker-compose.yml
:
- sudo nano docker-compose.yml
Thêm nội dung sau vào file để xác định các dịch vụ và dung lượng cho cài đặt Prisma:
version: "3" services: prisma: image: prismagraphql/prisma:1.20 restart: always ports: - "4466:4466" environment: PRISMA_CONFIG: | port: 4466 managementApiSecret: my-secret databases: default: connector: mysql host: mysql port: 3306 user: root password: prisma migrations: true mysql: image: mysql:5.7 restart: always environment: MYSQL_ROOT_PASSWORD: prisma volumes: - mysql:/var/lib/mysql volumes: mysql:
Cấu hình này thực hiện như sau:
- Nó chạy hai dịch vụ:
prisma-db
vàdb
. - Nó kéo version mới nhất của Prisma. Theo cách viết này, đó là Prisma 1.20.
- Nó cài đặt các cổng mà Prisma sẽ có sẵn và chỉ định tất cả các thông tin đăng nhập để kết nối với database MySQL trong phần
databases
.
Tệp docker-compose.yml
cài đặt managementApiSecret
, ngăn người khác truy cập vào dữ liệu với kiến thức về điểm cuối của bạn. Nếu bạn đang sử dụng hướng dẫn này cho bất kỳ điều gì ngoài việc triển khai thử nghiệm, bạn nên thay đổi managementAPIsecret
thành một thứ gì đó an toàn hơn. Khi bạn làm, hãy chắc chắn để ghi nhớ nó để bạn có thể nhập nó sau này trong prisma init
quá trình.
Tệp này cũng kéo hình ảnh MySQL Docker và cài đặt các thông tin đăng nhập đó. Theo mục đích của hướng dẫn này, file Docker Compose này sẽ quay một hình ảnh MySQL, nhưng bạn cũng có thể sử dụng PostgreSQL với Prisma. Cả hai Docker image đều có sẵn trên trung tâm Docker:
Lưu và thoát khỏi file .
Đến đây bạn đã lưu tất cả các chi tiết, bạn có thể khởi động các containers Docker. Lệnh -d
yêu cầu các containers chạy ở chế độ tách rời, nghĩa là chúng sẽ chạy trong nền:
- sudo docker-compose up -d
Thao tác này sẽ tìm nạp các Docker image cho cả prisma
và mysql
. Bạn có thể xác minh các containers Docker đang chạy bằng lệnh sau:
- sudo docker ps
Bạn sẽ thấy một kết quả giống như sau:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 24f4dd6222b1 prismagraphql/prisma:1.12 "/bin/sh -c /app/sta…" 15 seconds ago Up 1 second 0.0.0.0:4466->4466/tcp root_prisma_1 d8cc3a393a9f mysql:5.7 "docker-entrypoint.s…" 15 seconds ago Up 13 seconds 3306/tcp root_mysql_1
Với server Prisma và database của bạn được cài đặt , bây giờ bạn đã sẵn sàng làm việc local để triển khai dịch vụ Prisma.
Bước 2 - Cài đặt Prisma local
Server Prisma cung cấp môi trường thời gian chạy cho các dịch vụ Prisma của bạn. Đến đây bạn đã khởi động server Prisma, bạn có thể triển khai dịch vụ Prisma của bạn . Bạn sẽ chạy các bước này local , không phải trên server của bạn.
Để bắt đầu, hãy tạo một folder riêng để chứa tất cả các file Prisma:
- mkdir prisma
Sau đó chuyển vào folder đó:
- cd prisma
Bạn có thể cài đặt Prisma bằng Homebrew nếu đang sử dụng MacOS. Để thực hiện việc này, hãy chạy lệnh sau để thêm kho Prisma:
- brew tap prisma/prisma
Sau đó, bạn có thể cài đặt Prisma bằng lệnh sau:
- brew install prisma
Hoặc thay thế, với npm
:
- npm install -g prisma
Với Prisma được cài đặt local , bạn đã sẵn sàng khởi động dịch vụ Prisma mới.
Bước 3 - Tạo cấu hình cho một dịch vụ Prisma mới
Sau khi cài đặt, bạn có thể sử dụng Prisma prisma init
để tạo cấu trúc file cho API database Prisma mới, tạo các file cần thiết để xây dựng ứng dụng của bạn với Prisma. Điểm cuối của bạn sẽ tự động nằm trong file prisma.yml
và datamodel.prisma
sẽ chứa một mô hình dữ liệu mẫu mà bạn có thể truy vấn trong bước tiếp theo. Mô hình dữ liệu đóng role là cơ sở cho API Prisma của bạn và chỉ định mô hình cho ứng dụng của bạn. Đến đây, bạn chỉ đang tạo các file và mô hình dữ liệu mẫu. Bạn sẽ không thực hiện bất kỳ thay đổi nào đối với database cho đến khi bạn chạy prisma deploy
sau trong bước này.
Đến đây bạn có thể chạy local lệnh sau để tạo cấu trúc file mới:
- prisma init hello-world
Sau khi chạy lệnh này, bạn sẽ thấy một dấu nhắc tương tác. Khi được hỏi, hãy chọn, Use other server
và nhấn ENTER
:
Output Set up a new Prisma server or deploy to an existing server? You can set up Prisma for local development (based on docker-compose) Use existing database Connect to existing database Create new database Set up a local database using Docker Or deploy to an existing Prisma server: Demo server Hosted demo environment incl. database (requires login) ❯ Use other server Manually provide endpoint of a running Prisma server
Sau đó, bạn sẽ cung cấp điểm cuối của server đang hoạt động như server Prisma. Nó sẽ giống như sau: http:// SERVER_IP_ADDRESS :4466
. Điều quan trọng là điểm cuối bắt đầu bằng http (hoặc https) và có số cổng được chỉ định.
OutputEnter the endpoint of your Prisma server http://SERVER_IP_ADDRESS:4466
Đối với bí mật về API quản lý, hãy nhập cụm từ hoặc password mà bạn đã chỉ ra trước đó trong file cấu hình:
OutputEnter the management API secret my-secret
Đối với các tùy chọn tiếp theo, bạn có thể chọn các biến mặc định bằng cách nhấn ENTER
cho service name
service stage
và service stage
:
OutputChoose a name for your service hello-world Choose a name for your stage dev
Bạn cũng sẽ được lựa chọn ngôn ngữ lập trình cho client Prisma. Trong trường hợp này, bạn có thể chọn ngôn ngữ ưa thích của bạn . Bạn có thể đọc thêm về khách hàng tại đây .
Output Select the programming language for the generated Prisma client (Use arrow keys) ❯ Prisma TypeScript Client Prisma Flow Client Prisma JavaScript Client Prisma Go Client Don't generate
Sau khi hoàn thành dấu nhắc , bạn sẽ thấy kết quả sau xác nhận các lựa chọn bạn đã thực hiện:
Output Created 3 new files: prisma.yml Prisma service definition datamodel.prisma GraphQL SDL-based datamodel (foundation for database) .env Env file including PRISMA_API_MANAGEMENT_SECRET Next steps: 1. Open folder: cd hello-world 2. Deploy your Prisma service: prisma deploy 3. Read more about deploying services: http://bit.ly/prisma-deploy-services
Di chuyển vào folder hello-world
:
- cd hello-world
Đồng bộ hóa những thay đổi này với server của bạn với prisma deploy
. Thao tác này sẽ gửi thông tin đến server Prisma từ máy local của bạn và tạo dịch vụ Prisma trên server Prisma:
- prisma deploy
Lưu ý : Chạy lại prisma deploy
Prisma sẽ cập nhật dịch vụ Prisma của bạn.
Đầu ra của bạn sẽ giống như sau:
OutputCreating stage dev for service hello-world ✔ Deploying service `hello-world` to stage 'dev' to server 'default' 468ms Changes: User (Type) + Created type `User` + Created field `id` of type `GraphQLID!` + Created field `name` of type `String!` + Created field `updatedAt` of type `DateTime!` + Created field `createdAt` of type `DateTime!` Applying changes 716ms Your Prisma GraphQL database endpoint is live: HTTP: http://SERVER_IP_ADDRESS:4466/hello-world/dev WS: ws://SERVER_IP_ADDRESS:4466/hello-world/dev
Kết quả kết quả cho thấy Prisma đã cập nhật database của bạn theo mô hình dữ liệu (được tạo trong bước prisma init
) với kiểu User
. Các loại là một phần thiết yếu của mô hình dữ liệu; chúng đại diện cho một mục từ ứng dụng của bạn và mỗi loại chứa nhiều trường. Đối với mô hình dữ liệu , các trường liên quan mô tả user là: ID của user , tên, thời gian họ được tạo và thời gian họ được cập nhật.
Nếu bạn gặp sự cố ở giai đoạn này và nhận được kết quả khác, hãy kiểm tra kỹ xem bạn đã nhập đúng tất cả các trường trong dấu nhắc tương tác hay chưa. Bạn có thể thực hiện bằng cách xem lại nội dung của file prisma.yml
.
Khi dịch vụ Prisma của bạn đang chạy, bạn có thể kết nối với hai điểm cuối khác nhau:
Giao diện quản lý, có tại
http:// SERVER_IP_ADDRESS :4466/management
, nơi bạn có thể quản lý và triển khai các dịch vụ Prisma.API GraphQL cho dịch vụ Prisma của bạn, có tại
http:// SERVER_IP_ADDRESS :4466/ hello-world / dev
.
Bạn đã cài đặt và triển khai thành công server Prisma của bạn . Đến đây bạn có thể khám phá các truy vấn và đột biến trong GraphQL.
Bước 4 - Chạy một truy vấn mẫu
Để khám phá một trường hợp sử dụng Prisma khác, bạn có thể thử nghiệm với công cụ sân chơi GraphQL , là một môi trường phát triển tích hợp GraphQL (IDE) open-souce trên server của bạn. Để truy cập nó, hãy truy cập điểm cuối trong trình duyệt của bạn từ bước trước:
http://SERVER_IP_ADDRESS:4466/hello-world/dev
Đột biến là một thuật ngữ GraphQL mô tả cách sửa đổi - tạo, cập nhật hoặc xóa (CRUD) - dữ liệu trong phần backend thông qua GraphQL. Bạn có thể gửi đột biến để tạo user mới và khám phá chức năng. Để thực hiện việc này, hãy chạy đột biến sau ở phía bên trái của trang:
mutation { createUser(data: { name: "Alice" }) { id name } }
Sau khi nhấn nút phát, bạn sẽ thấy kết quả ở phía bên tay phải của trang.
Sau đó, nếu bạn muốn tra cứu user bằng cách sử dụng cột ID
trong database , bạn có thể chạy truy vấn sau:
query { user(where: { id: "cjkar2d62000k0847xuh4g70o" }) { id name } }
Đến đây bạn có một server Prisma và dịch vụ đang chạy trên server của bạn , đồng thời bạn đã chạy các truy vấn thử nghiệm trong IDE của GraphQL.
Kết luận
Bạn có một cài đặt Prisma đang hoạt động trên server của bạn . Bạn có thể xem thêm một số trường hợp sử dụng Prisma và các bước tiếp theo trong Hướng dẫn Bắt đầu hoặc khám phá bộ tính năng của Prisma trong Tài liệu Prisma . Khi bạn đã hoàn thành tất cả các bước trong hướng dẫn này, bạn có một số tùy chọn để xác minh kết nối của bạn với database , một khả năng là sử dụng Prisma Client .
Các tin liên quan
Kết xuất phía server với Angular Universal2019-01-10
Cách cài đặt và cấu hình pgAdmin 4 ở Chế độ server
2018-10-19
Cách cài đặt Linux, Apache, MySQL, PHP (LAMP) trên Debian 8
2018-10-18
Cách cài đặt Linux, Nginx, MySQL, PHP ( LEMP) trên Debian 9
2018-09-13
Cách cài đặt, chạy và kết nối với Jupyter Notebook trên server từ xa
2018-09-12
Cách cài đặt và cấu hình Postfix làm server SMTP chỉ gửi trên Debian 9
2018-09-07
Cách cấu hình BIND làm server DNS Mạng Riêng trên Debian 9
2018-09-06
Thiết lập server ban đầu với Debian 9
2018-09-04
Cách cài đặt Linux, Apache, MariaDB, PHP (LAMP) trên Debian 9
2018-09-04
Cách phát triển ứng dụng Node.js TCP Server bằng PM2 và Nginx trên Ubuntu 16.04
2018-07-23