数据库访问(SQL)

本文属使用Prisma构建GraphQL服务系列。

按照本指南直接连接到为本地Prisma集群(cluster)的MySQL数据库。

如果您使用prisma local start来启动您的本地Prisma集群(cluster),那么您将运行两个容器(container):

  • prisma:正在运行主要的Prisma服务;
  • prisma-db:正在运行存储数据的MySQL服务器。

本指南介绍了如何连接到本地MySQL服务器,以便直接查询和更新数据。

以下,我们假设您有一个当地的Prisma服务正在运行。

1.获取运行MySQL数据库的Docker容器的名称

列出您正在运行的Prisma Docker容器:

docker ps --filter name=prisma

验证是否有名称为prisma-db镜像(image)为mysql:5.7的容器。

2.打开MySQL 客户端

要在终端中打开MySQL客户端,请运行以下命令。请注意,prisma-db是上面列表中的容器名称:

docker exec -it prisma-db mysql -u root --host 127.0.0.1 --port 3306 --password=graphcool

密码将在即将发布的版本中更改为prisma

3.将SQL查询发送到数据库

一旦MySQL客户端打开,您可以询问当前可用的数据库:

show databases;

这将打印下面的输出:

扫描二维码关注公众号,回复: 5240613 查看本文章
+---------------------------+
| Database                  |
+---------------------------+
| information_schema        |
| prisma                    |
| logs                      |
| mysql                     |
| performance_schema        |
| sys                       |
| <service-id>              |
+---------------------------+

从可用的数据库中,以下三个与您相关:

  • <service-id>:此数据库的名称是服务的名称和stage的组合。它看起来像这样:service @ stage。它包含有关用于生成GraphQL schema的服务的元信息。
  • prisma:该数据库包含有关Prisma服务定义的元信息。

您现在可以使用use命令选择其中一个数据库,例如,如果您的<service-id>my-service @ dev,然后运行:

use my-service@dev;

你可以像这样列出表格:

show tables;

输出

+----------------------+
| Tables_in_my-app@dev |
+----------------------+
| Post                 |
| _RelayId             |
+----------------------+

现在您可以开始编写查询:

SELECT * FROM Post;

输出

+---------------------------+---------------------+---------------------+-------------+----------------------+-------------------------------------------------+
| id                        | createdAt           | updatedAt           | isPublished | title                | text                                            |
+---------------------------+---------------------+---------------------+-------------+----------------------+-------------------------------------------------+
| cjc82o6cg000b0135wpxgybf6 | 2018-01-09 20:12:02 | 2018-01-09 20:12:02 |           1 | Hello World          | This is my first blog post ever!                |
| cjc82o6mo000d013599yzlwls | 2018-01-09 20:12:02 | 2018-01-09 20:12:02 |           1 | My Second Post       | My first post was good, but this one is better! |
| cjc82o6n4000f01350jortmv2 | 2018-01-09 20:12:02 | 2018-01-09 20:12:02 |           0 | Solving World Hunger | This is a draft...                              |
+---------------------------+---------------------+---------------------+-------------+----------------------+-------------------------------------------------+

你可以像这样退出MySQL:

exit;

猜你喜欢

转载自blog.csdn.net/weixin_33859504/article/details/87641073