美文网首页我爱编程
数据库访问(SQL)

数据库访问(SQL)

作者: guog | 来源:发表于2018-05-02 02:56 被阅读144次

    本文属使用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;
    

    这将打印下面的输出:

    +---------------------------+
    | 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;
    

    相关文章

      网友评论

        本文标题:数据库访问(SQL)

        本文链接:https://www.haomeiwen.com/subject/yekqrftx.html