3 votes

TypeORM - exécuter une migration spécifique

Je sais que typeorm migration:run pour exécuter tous les fichiers de migration, mais il arrive que je veuille exécuter un fichier comme insert ou un fichier modifié. Mais je ne trouve pas de documentation pour cela. Comment faire, merci.

1voto

noam steiner Points 192

Si vous souhaitez alimenter la base de données avec des données, vous ne devez pas utiliser les migrations. L'objectif des migrations est de créer la structure de la base de données. C'est pourquoi les migrations sont exécutées en série, et l'exécution non sérielle d'une seule migration n'a donc aucun intérêt.

Pour l'alimentation de la base de données avec typeorm, vous pouvez utiliser typeorm cli query Vous pouvez créer un script qui lit le code SQL à partir d'un fichier.

Par exemple dans une application node.js & bash :

package.json :

"scripts": {
...,
"typeorm": "npx ts-node -r tsconfig-paths/register ./node_modules/typeorm/cli --config ormconfig-migrations.ts",
"db:seed": "bash scripts/db-seed.sh"
}

db-seed.sh :

#!/bin/bash
query=""

for filename in sql/seed/*.seed.sql; do
 query=${query}"$(< ${filename})";
done

npm run typeorm query "${query}";

Attention, il y a un insecte dans cette solution, il y a toujours une erreur provenant du logger utilisé par typeorm - ignorez-la. elle n'est pas liée à l'opération de la base de données et ne représente pas le succès du processus.

Un fichier de migration qui a été partagé avec d'autres ne doit pas être modifié, dans ce cas, créez une nouvelle migration. Si ce fichier n'a pas été partagé et qu'il est en cours de développement, vous pouvez exécuter la commande migration:revert autant que nécessaire, puis modifiez et exécutez migration:run encore une fois.

0voto

Dominik Points 55

Ce n'est pas possible. Vous pouvez consulter la documentation de la migration avec

typeorm migration:run -h

Pendant le développement, vous pouvez modifier localement vos paramètres de connexion, par exemple en changeant le chemin d'accès aux fichiers de migration dans votre fichier ormconfig.json pour qu'il corresponde uniquement à votre fichier.

"migrations": [
    "src/db/migration/**/yourmigration.ts"
]

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X