本文屬使用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
密碼將在即將發(fā)布的版本中更改為
prisma
。
3.將SQL查詢發(fā)送到數據庫
一旦MySQL客戶端打開蹲盘,您可以詢問當前可用的數據庫:
show databases;
這將打印下面的輸出:
+---------------------------+
| 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;