<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Leandro Martins</title>
    <description>The latest articles on DEV Community by Leandro Martins (@lemartin07).</description>
    <link>https://dev.to/lemartin07</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1631752%2F4f107017-154a-4ad8-9867-488c3fc00119.jpg</url>
      <title>DEV Community: Leandro Martins</title>
      <link>https://dev.to/lemartin07</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/lemartin07"/>
    <language>en</language>
    <item>
      <title>Entendendo o Fluxo de Trabalho do Prisma Utilizando Migrations</title>
      <dc:creator>Leandro Martins</dc:creator>
      <pubDate>Wed, 17 Jul 2024 01:56:29 +0000</pubDate>
      <link>https://dev.to/lemartin07/entendendo-o-fluxo-de-trabalho-do-prisma-utilizando-migrations-29cp</link>
      <guid>https://dev.to/lemartin07/entendendo-o-fluxo-de-trabalho-do-prisma-utilizando-migrations-29cp</guid>
      <description>&lt;p&gt;Prisma é um ORM (Object-Relational Mapping) moderno que facilita a interação com bancos de dados em aplicações Node.js e TypeScript. Uma das funcionalidades mais importantes do Prisma é o sistema de migrações, que permite manter o esquema do banco de dados sincronizado com o modelo de dados da aplicação. Neste post, vamos explorar o fluxo de trabalho do Prisma utilizando migrations.&lt;/p&gt;

&lt;h2&gt;
  
  
  O que são Migrations?
&lt;/h2&gt;

&lt;p&gt;Migrations são um método para controlar e aplicar alterações no esquema do banco de dados de forma sistemática e versionada. Elas permitem que você defina mudanças estruturais no banco de dados, como criar ou alterar tabelas, de maneira incremental e reversível.&lt;/p&gt;

&lt;h2&gt;
  
  
  Fluxo de Trabalho do Prisma com Migrations
&lt;/h2&gt;

&lt;p&gt;O fluxo de trabalho típico com migrations no Prisma envolve os seguintes passos:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Instalação e Configuração Inicial&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Definição do Esquema&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Criação de uma Migration&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Aplicação da Migration&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Gerenciamento de Migrations&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Passo 1: Instalação e Configuração Inicial
&lt;/h3&gt;

&lt;p&gt;Primeiro, precisamos instalar o Prisma no projeto e inicializá-lo:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm &lt;span class="nb"&gt;install&lt;/span&gt; @prisma/client
npx prisma init

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Este comando cria um diretório &lt;code&gt;prisma&lt;/code&gt; contendo um arquivo &lt;code&gt;schema.prisma&lt;/code&gt;, onde definimos nosso modelo de dados.&lt;/p&gt;

&lt;h3&gt;
  
  
  Passo 2: Definição do Esquema
&lt;/h3&gt;

&lt;p&gt;No arquivo &lt;code&gt;schema.prisma&lt;/code&gt;, definimos os modelos que representam as tabelas do banco de dados. Por exemplo, vamos definir um modelo &lt;code&gt;User&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;model User {
  id    Int     @id @default(autoincrement())
  email String  @unique
  name  String?
}

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Aqui, estamos definindo uma tabela &lt;code&gt;User&lt;/code&gt; com colunas &lt;code&gt;id&lt;/code&gt;, &lt;code&gt;email&lt;/code&gt; e &lt;code&gt;name&lt;/code&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Passo 3: Criação de uma Migration
&lt;/h3&gt;

&lt;p&gt;Depois de definir ou alterar o esquema, criamos uma migration para refletir essas mudanças no banco de dados:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npx prisma migrate dev &lt;span class="nt"&gt;--name&lt;/span&gt; init

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;O comando &lt;code&gt;migrate dev&lt;/code&gt; cria uma nova migration e aplica as mudanças ao banco de dados. O parâmetro &lt;code&gt;--name&lt;/code&gt; permite dar um nome descritivo à migration, como &lt;code&gt;init&lt;/code&gt; no exemplo acima.&lt;/p&gt;

&lt;h3&gt;
  
  
  Passo 4: Aplicação da Migration
&lt;/h3&gt;

&lt;p&gt;As migrations são aplicadas automaticamente ao banco de dados quando usamos o comando &lt;code&gt;migrate dev&lt;/code&gt;. Isso garante que o banco de dados esteja sempre em sincronia com o modelo de dados definido no &lt;code&gt;schema.prisma&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Se você quiser aplicar migrations em um ambiente de produção, utilize o comando:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npx prisma migrate deploy

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Este comando aplica todas as migrations pendentes no banco de dados de produção.&lt;/p&gt;

&lt;h3&gt;
  
  
  Passo 5: Gerenciamento de Migrations
&lt;/h3&gt;

&lt;p&gt;Prisma mantém um histórico de todas as migrations aplicadas no banco de dados. Isso é útil para rastrear mudanças e reverter migrations, se necessário. Para ver o histórico de migrations, você pode usar:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npx prisma migrate status

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Este comando mostra o estado atual das migrations, incluindo quais migrations foram aplicadas e quais estão pendentes.&lt;/p&gt;

&lt;h3&gt;
  
  
  Exemplo Prático
&lt;/h3&gt;

&lt;p&gt;Vamos ver um exemplo prático de como adicionar um novo campo ao modelo &lt;code&gt;User&lt;/code&gt; e criar uma migration para essa mudança.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Adicionar o campo ao modelo &lt;code&gt;User&lt;/code&gt; no &lt;code&gt;schema.prisma&lt;/code&gt;&lt;/strong&gt;:&lt;br&gt;
&lt;/p&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;model User {
  id        Int     @id @default(autoincrement())
  email     String  @unique
  name      String?
  birthdate DateTime?
}

&lt;/code&gt;&lt;/pre&gt;

&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Criar uma nova migration&lt;/strong&gt;:&lt;br&gt;
&lt;/p&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npx prisma migrate dev &lt;span class="nt"&gt;--name&lt;/span&gt; add-birthdate-to-user

&lt;/code&gt;&lt;/pre&gt;

&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Aplicar a migration&lt;/strong&gt;:&lt;/p&gt;

&lt;p&gt;O comando &lt;code&gt;migrate dev&lt;/code&gt; já aplica a migration ao banco de dados. Agora, o banco de dados terá o novo campo &lt;code&gt;birthdate&lt;/code&gt; na tabela &lt;code&gt;User&lt;/code&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Verificar o estado das migrations&lt;/strong&gt;:&lt;br&gt;
&lt;/p&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npx prisma migrate status

&lt;/code&gt;&lt;/pre&gt;


&lt;p&gt;Este comando mostrará que a migration &lt;code&gt;add-birthdate-to-user&lt;/code&gt; foi aplicada com sucesso.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Conclusão
&lt;/h2&gt;

&lt;p&gt;O fluxo de trabalho do Prisma utilizando migrations é uma maneira eficiente e segura de gerenciar mudanças no esquema do banco de dados. Através de uma sequência clara de passos – definir o esquema, criar migrations, aplicar mudanças e gerenciar o histórico de migrations – é possível manter o banco de dados sincronizado com o modelo de dados da aplicação, facilitando o desenvolvimento e a manutenção do software.&lt;/p&gt;

&lt;p&gt;Com Prisma, você não apenas simplifica o gerenciamento do banco de dados, mas também ganha uma poderosa ferramenta para garantir que todas as mudanças sejam rastreáveis e reversíveis, contribuindo para um processo de desenvolvimento mais robusto e ágil.&lt;/p&gt;

</description>
      <category>prisma</category>
      <category>javascript</category>
      <category>webdev</category>
      <category>programming</category>
    </item>
    <item>
      <title>Understanding One-to-One Relations with Prisma ORM</title>
      <dc:creator>Leandro Martins</dc:creator>
      <pubDate>Sat, 15 Jun 2024 18:36:49 +0000</pubDate>
      <link>https://dev.to/lemartin07/understanding-one-to-one-relations-with-prisma-orm-3i3m</link>
      <guid>https://dev.to/lemartin07/understanding-one-to-one-relations-with-prisma-orm-3i3m</guid>
      <description>&lt;p&gt;Prisma ORM is a powerful tool for managing databases in Node.js and TypeScript projects. One of its most important features is the ability to define relationships between tables, including One-to-One (one-to-one) relationships. In this post, we will explore how to set up and work with One-to-One relationships in Prisma ORM.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is a One-to-One Relationship?
&lt;/h2&gt;

&lt;p&gt;In a database, a One-to-One relationship means that a record in one table is directly associated with a single record in another table. For example, let's say you have two tables: &lt;code&gt;User&lt;/code&gt; and &lt;code&gt;Profile&lt;/code&gt;. Each &lt;code&gt;User&lt;/code&gt; has a single &lt;code&gt;Profile&lt;/code&gt; and each &lt;code&gt;Profile&lt;/code&gt; belongs to a single &lt;code&gt;User&lt;/code&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Setting Up a One-to-One Relationship in Prisma
&lt;/h2&gt;

&lt;p&gt;Let's see how to define a One-to-One relationship between two tables using Prisma ORM. For this example, we will create the &lt;code&gt;User&lt;/code&gt; and &lt;code&gt;Profile&lt;/code&gt; tables.&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 1: Initial Setup
&lt;/h3&gt;

&lt;p&gt;First, make sure you have Prisma installed in your project:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm &lt;span class="nb"&gt;install&lt;/span&gt; @prisma/client
npx prisma init
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This will create a &lt;code&gt;prisma&lt;/code&gt; directory containing the &lt;code&gt;schema.prisma&lt;/code&gt; file where we will define our data model.&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 2: Defining the Models
&lt;/h3&gt;

&lt;p&gt;Open the &lt;code&gt;schema.prisma&lt;/code&gt; file and define the &lt;code&gt;User&lt;/code&gt; and &lt;code&gt;Profile&lt;/code&gt; models:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;model User {
  id      Int     @id @default(autoincrement())
  email   String  @unique
  name    String?
  profile Profile?

  @@map("users")
}

model Profile {
  id     Int    @id @default(autoincrement())
  bio    String
  userId Int    @unique
  user   User   @relation(fields: [userId], references: [id])

  @@map("profiles")
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Here, we define two models:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;User&lt;/code&gt;: Represents a user with a unique ID, a unique email, an optional name, and an optional profile.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;Profile&lt;/code&gt;: Represents a profile with a unique ID, a bio, and a &lt;code&gt;userId&lt;/code&gt; field that is a foreign key referencing the &lt;code&gt;id&lt;/code&gt; of the &lt;code&gt;User&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Step 3: Migrating the Database
&lt;/h3&gt;

&lt;p&gt;After defining the models, we need to migrate the database to reflect these changes:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npx prisma migrate dev &lt;span class="nt"&gt;--name&lt;/span&gt; init
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This will create the &lt;code&gt;users&lt;/code&gt; and &lt;code&gt;profiles&lt;/code&gt; tables in your database with the One-to-One relationship configured.&lt;/p&gt;

&lt;h2&gt;
  
  
  Working with One-to-One Relationships
&lt;/h2&gt;

&lt;p&gt;Now that we have our models defined and migrated, let's see how to create, read, and manipulate data with this relationship.&lt;/p&gt;

&lt;h3&gt;
  
  
  Creating a User and a Profile
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;PrismaClient&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;@prisma/client&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;prisma&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;PrismaClient&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;

&lt;span class="k"&gt;async&lt;/span&gt; &lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;main&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;user&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;prisma&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;user&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;create&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
    &lt;span class="na"&gt;data&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
      &lt;span class="na"&gt;email&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;alice@prisma.io&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
      &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Alice&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
      &lt;span class="na"&gt;profile&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="na"&gt;create&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
          &lt;span class="na"&gt;bio&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Software Developer&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="p"&gt;},&lt;/span&gt;
      &lt;span class="p"&gt;},&lt;/span&gt;
    &lt;span class="p"&gt;},&lt;/span&gt;
  &lt;span class="p"&gt;});&lt;/span&gt;

  &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;user&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="nf"&gt;main&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
  &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="k"&gt;catch&lt;/span&gt;&lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="nx"&gt;e&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;throw&lt;/span&gt; &lt;span class="nx"&gt;e&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="p"&gt;})&lt;/span&gt;
  &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="k"&gt;finally&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;async &lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;prisma&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;$disconnect&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
  &lt;span class="p"&gt;});&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;In this example, we are creating a &lt;code&gt;User&lt;/code&gt; with an associated &lt;code&gt;Profile&lt;/code&gt; in a single operation.&lt;/p&gt;

&lt;h3&gt;
  
  
  Reading Related Data
&lt;/h3&gt;

&lt;p&gt;To fetch a user along with their profile, we use the &lt;code&gt;include&lt;/code&gt; operation:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;userWithProfile&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;prisma&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;user&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;findUnique&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
  &lt;span class="na"&gt;where&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="na"&gt;email&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;alice@prisma.io&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="p"&gt;},&lt;/span&gt;
  &lt;span class="na"&gt;include&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="na"&gt;profile&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="p"&gt;},&lt;/span&gt;
&lt;span class="p"&gt;});&lt;/span&gt;

&lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;userWithProfile&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Updating a Profile
&lt;/h3&gt;

&lt;p&gt;To update the profile of an existing user:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;updatedProfile&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;prisma&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;profile&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;update&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
  &lt;span class="na"&gt;where&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="na"&gt;userId&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;userWithProfile&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;id&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="p"&gt;},&lt;/span&gt;
  &lt;span class="na"&gt;data&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="na"&gt;bio&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Full Stack Developer&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="p"&gt;},&lt;/span&gt;
&lt;span class="p"&gt;});&lt;/span&gt;

&lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;updatedProfile&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;Defining and working with One-to-One relationships in Prisma ORM is straightforward and intuitive. With the correct configuration in the &lt;code&gt;schema.prisma&lt;/code&gt; file and using the methods provided by Prisma Client, you can easily manage and interact with related data in your database.&lt;/p&gt;

&lt;p&gt;Prisma not only simplifies the process of defining relationships but also provides a powerful API for working with this data, making application development more efficient and productive.&lt;/p&gt;

</description>
      <category>prisma</category>
      <category>javascriptlibraries</category>
      <category>softwaredevelopment</category>
    </item>
  </channel>
</rss>
