欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Prisma(二)——Existing database

程序员文章站 2022-05-05 11:35:15
...

Prisma(一)基础中设置prisma服务的时候选择的是连接了new database,所以今天讲解Existing database,也是困惑我许久的问题。

How Prisma works with an Existing database❓

回忆上节讲的How Prisma works with an Existing database。

Prisma(二)——Existing database

Start

  • prisma init +项目名开始

    Prisma(二)——Existing database

    注意: 在建用户名和密码的过程如下:
    Prisma(二)——Existing database

    这个过程坑了我好久????,希望可以帮到你们 ✌️

  • Select the schema you want to introspect

    Prisma(二)——Existing database
  • prisma init finish
    Prisma(二)——Existing database

  • datamodel.prisma
    完成prisma init的步骤后我们去datamodel.prisma文件看看:

    type User {
      id: ID! @id
      name: String!
    }
    

    为什么没有生成prismaTest中相应的datamodel呢❓那我们是要手动完成吗❓如果是简单的数据结构还好说,如果是复杂的数据结构呢❓从头开始手动编写数据模型,同时确保它与现有数据的结构匹配可能很繁琐。所以呢,别急别急,慢慢来,咱们来执行下prisma introspect看会发生什么呢?

  • prisma introspect

    prisma init会生成整个服务配置,但是prisma introspect仅会生成数据模型文件。

    Prisma(二)——Existing database

    这时候会生成一个类似datamodel.prisma的文件(例如:datamodel-1578144924860.prisma),运行时将datamodel属性写入prisma.yml,所以需要将文件重命名为datamodel.prisma,因为这是你在prisma.yml中指定的文件名。

    注意: prisma introspect会分析你所选择数据库中所有内容,上面是introspect简单的数据库中的schema,接下来看一个比较复杂的(以eportal数据库中的Machine集合为例):

    • datamodel.prisma

      Prisma(二)——Existing database
    • 集合中的数据

      Prisma(二)——Existing database

    从以上的例子可以看出introspect可以分析出数据库中的所有内容,数据格式及字段不正确时会有相应的提示。????????????

  • prisma deploy

    执行此步骤时若报错,请删掉docker-compose.yml中的以下内容:

    Prisma(二)——Existing database

好啦,prisma连接已存在的数据库(Mongodb)就已完成啦!✌️✌️✌️

相关标签: Prisma