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.
Réponses
Trop de publicités?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.
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"
]