Prisma est un ORM (Object-Relational Mapping) moderne qui facilite l'interaction avec les bases de données dans les applications Node.js et TypeScript. L'une des fonctionnalités les plus importantes de Prisma est le système de migration, qui vous permet de maintenir le schéma de la base de données synchronisé avec le modèle de données de l'application. Dans cet article, nous explorerons le flux de travail Prisma à l'aide des migrations.
Les migrations sont une méthode permettant de contrôler et d'appliquer les modifications au schéma de la base de données de manière systématique et versionnée. Ils vous permettent de définir des modifications structurelles de la base de données, telles que la création ou la modification de tables, de manière incrémentielle et réversible.
Le flux de travail typique avec les migrations dans Prisma implique les étapes suivantes :
Tout d'abord, nous devons installer Prisma dans le projet et l'initialiser :
npm install @prisma/client npx prisma init
Cette commande crée un répertoire prisme contenant un fichier schema.prisma, où nous définissons notre modèle de données.
Dans le fichier schema.prisma, nous définissons les modèles qui représentent les tables de la base de données. Par exemple, définissons un modèle Utilisateur :
model User { id Int @id @default(autoincrement()) email String @unique name String? }
Ici, nous définissons une table User avec des colonnes id, email et name.
Après avoir défini ou modifié le schéma, nous créons une migration pour refléter ces changements dans la base de données :
npx prisma migrate dev --name init
La commande migrate dev crée une nouvelle migration et applique les modifications à la base de données. Le paramètre --name permet de donner à la migration un nom descriptif, comme init dans l'exemple ci-dessus.
Les migrations sont automatiquement appliquées à la base de données lorsque nous utilisons la commande migrate dev. Cela garantit que la base de données est toujours synchronisée avec le modèle de données défini dans schema.prisma.
Si vous souhaitez appliquer des migrations dans un environnement de production, utilisez la commande :
npx prisma migrate deploy
Cette commande applique toutes les migrations en attente vers la base de données de production.
Prisma conserve un historique de toutes les migrations appliquées à la base de données. Ceci est utile pour suivre les modifications et annuler les migrations si nécessaire. Pour voir l'historique de migration, vous pouvez utiliser :
npx prisma migrate status
Cette commande affiche l'état actuel des migrations, y compris quelles migrations ont été appliquées et lesquelles sont en attente.
Voyons un exemple pratique de la façon d'ajouter un nouveau champ au modèle Utilisateur et de créer une migration pour ce changement.
Ajouter le champ au modèle Utilisateur dans schema.prisma :
model User { id Int @id @default(autoincrement()) email String @unique name String? birthdate DateTime? }
Créer une nouvelle migration :
npx prisma migrate dev --name add-birthdate-to-user
Appliquer la migration :
La commande migrate dev applique déjà la migration à la base de données. La base de données aura désormais le nouveau champ de date de naissance dans la table Utilisateur.
Vérifier le statut de migration :
npx prisma migrate status
Cette commande montrera que la migration de l'ajout de la date de naissance à l'utilisateur a été appliquée avec succès.
Le workflow de Prisma utilisant les migrations est un moyen efficace et sûr de gérer les modifications apportées au schéma de la base de données. Grâce à une séquence claire d'étapes – définition du schéma, création de migrations, application des modifications et gestion de l'historique des migrations – il est possible de maintenir la base de données synchronisée avec le modèle de données de l'application, facilitant ainsi le développement et la maintenance du logiciel.
Avec Prisma, non seulement vous simplifiez la gestion des bases de données, mais vous bénéficiez également d'un outil puissant pour garantir que toutes les modifications sont traçables et réversibles, contribuant ainsi à un processus de développement plus robuste et agile.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!