帮酷LOGO
0 0 评论
文章标签:Server  Ubuntu  Manual  MAN  Prism  SET  

介绍

Prisma是在应用程序中替换传统对象关系映射工具(ORM )的数据层,Prisma提供对构建GraphQL服务器和REST API的支持,以类型安全为重点,简化了数据库访问,并支持声明式数据库迁移,类型安全有助于减少潜在的代码错误和不一致性,而声明性数据库迁移允许你将数据存储在版本控制中,这些特性帮助开发人员减少花费在设置数据库访问,迁移和数据管理工作流程上的时间。

在本教程中,你将手动安装Prisma服务器并在Ubuntu 18.04中运行测试GraphQL查询graphQL Playground,你将在远程服务器上运行Prisma的同时在本地托管Prisma设置代码和开发你将在其中实际构建应用程序。

注意:本节描述的设置不包括生产服务器通常预期的功能,例如,自动备份和主动故障转移。

前提条件

要完成本教程,你需要:

通过初始服务器设置指南配置的Ubuntu 18.04服务器,包括sudo非root用户,Docker安装在你的服务器上,通过在Ubuntu 18 04上进行Docker安装的教程的步骤1来实现,Node.js安装在你的服务器上。

步骤1-启动Prisma服务器

Prisma CLI是用于部署和管理Prisma服务的主要工具,要启动服务,你需要设置所需的基础架构,其中包括Prisma服务器和与其连接的数据库。

Docker Compose允许你管理和运行多个容器应用程序,你将使用它来设置Prisma服务所需的基础结构。

首先创建docker-compose.yml文件,将Prisma服务配置存储在服务器上,你将使用此文件一步一步自动启动Prisma (一个关联的数据库)并配置必要的详细信息,一旦文件用Docker编写,它为你的数据库配置密码,所以一定要替换managementAPIsecretMYSQL_ROOT_PASSWORD的密码,运行以下命令来创建和编辑docker-compose.yml文件:


sudo nano docker-compose.yml

将以下内容添加到文件中,以定义Prisma设置的服务和卷:

docker-compose.yml

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:

此配置执行以下操作:

它启动了两个服务:prisma-dbdb,它引入了最新版本的Prisma ,它设置端口Prisma可用,并指定在databases部分中连接到MySQL数据库的所有凭据,

docker-compose.yml文件设置了managementAPIsecret,它可以防止其他人通过你的端点访问你的数据,完成后,一定要记住它,以便以后在prisma init进程中输入它。

此文件还将获取MySQL Docker镜像并设置这些凭据,就本教程而言,此Docker Compose文件启动了一个MySQL镜像,但是你也可以将PostgreSQL与Prisma一起使用,两个Docker镜像均可在Docker-Hub上使用:

MySQLPostgreSQL

保存并退出文件。

现在已经保存了所有的细节,你可以启动Docker容器了,-d命令告诉容器以分离模式运行,这意味着它们将在后台运行:


sudo docker-compose up -d

这将获取prismamysql的Docker镜像,可以通过以下命令验证Docker容器是否正在运行:


sudo docker ps

你将看到类似于下面这样的输出:


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

通过设置Prisma服务器和数据库,你现在可以在本地工作以部署Prisma服务。

步骤2-在本地安装Prisma

现在你已启动Prisma服务器,可以部署Prisma服务了,你将在本地运行这些步骤,而不是在服务器上运行。

首先,创建一个单独的文件夹以包含所有Prisma文件:


mkdir prisma

然后移动到那个文件夹:


cd prisma

如果你使用的是MacOS,则可以将Prisma与Homebrew一起安装,为此,请运行以下命令以添加Prisma存储库:


brew tap prisma/prisma

然后可以使用以下命令安装Prisma :


brew install prisma

或者,使用npm


npm install -g prisma

在本地安装Prisma之后,你就可以引导新的Prisma服务了。

步骤3-为新的Prisma服务创建配置

现在你可以在本地运行以下命令来创建新的文件结构:


prisma init hello-world

运行此命令后,你将看到交互式提示,当询问时,选择Use other server并按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

然后,提供充当Prisma服务器的服务器的端点,http://SERVER_IP_ADDRESS:4466


OutputEnter the endpoint of your Prisma server http://SERVER_IP_ADDRESS:4466

对于"管理API机密",请输入在配置文件中前面指定的短语或密码:


OutputEnter the management API secret my-secret

对于后续选项,可以通过按下ENTERservice nameservice stage选择默认变量:


OutputChoose a name for your service hello-world
Choose a name for your stage dev

选择Prisma客户程序语言


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

完成提示后,你将看到确认所做选择的以下输出:


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



移动到 hello-world 目录:


cd hello-world

使用prisma deploy将这些更改同步到你的服务器,这会将信息从你的本地计算机发送到Prisma服务器,并在Prisma服务器上创建Prisma服务:


prisma deploy

注:再次运行prisma deploy将更新你的Prisma服务。

你的输出将类似于:


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


输出显示Prisma已经根据你的数据库(在prisma init步骤中创建)更新了你的数据库,

在Prisma服务运行的情况下,你可以连接到两个不同的端点:

管理界面,可在 http://SERVER_IP_ADDRESS:4466/management ,你可以在其中管理和部署Prisma服务。

适用于Prisma服务的GraphQL API,可从以下位置获得,http://SERVER_IP_ADDRESS:4466/hello-world/dev

你已经成功设置并部署了Prisma服务器。

步骤4-运行查询例子

要探索另一个Prisma用例,可以试验graphQL Playground工具,它是服务器上的一个开源GraphQL集成开发环境(IDE ),要访问它,请从上一步访问浏览器中的端点:


http://SERVER_IP_ADDRESS:4466/hello-world/dev

mutation是GraphQL术语,描述了一种通过GraphQL修改,创建,更新或删除(CRUD )数据的方法,你可以发送mutation来创建新用户并探索功能,为此,在页面的左侧运行以下mutation:


mutation {
 createUser(data: { name:"Alice" }) {
 id
 name
 }
}

按下播放按钮后,你将在页面右侧看到结果,

接下来,如果要使用数据库中的ID列查找用户,则可以运行以下查询:


query {
 user(where: { id:"cjkar2d62000k0847xuh4g70o" }) {
 id
 name
 }
}

你现在拥有Prisma服务器并在服务器上启动并运行服务,并且已经在GraphQL的IDE中运行测试查询。

结束语

你可以在入门指南中看到一些附加的Prisma用例。



文章标签:Server  MAN  SET  Ubuntu  Manual  Prism  

Copyright © 2011 HelpLib All rights reserved.    知识分享协议 京ICP备05059198号-3  |  如果智培  |  酷兔英语