Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Migrations de base de données #14

Open
arnaudrenaud opened this issue Jun 24, 2024 · 0 comments
Open

Migrations de base de données #14

arnaudrenaud opened this issue Jun 24, 2024 · 0 comments

Comments

@arnaudrenaud
Copy link
Owner

arnaudrenaud commented Jun 24, 2024

Configuration de TypeORM

Ajouter les attributs migrations et migrationsRun à l'objet DataSource :

export function getNewDataSource(): DataSource {
  return new DataSource({
    type: "postgres",
    url: ,
    entities: [Ad, Category, Tag, User, UserSession],
    migrations: [__dirname + "/migrations/*.{js,ts}"],
    migrationsRun: true,
  });
}

migrationsRun: true assurera l'application des migrations non encore appliquées à chaque connexion à la base de données.

Script de migration

Installer ts-node et ajouter ces scripts dans back-end/package.json :

    "typeorm": "typeorm-ts-node-commonjs -d ./src/database/typeorm-cli.ts",
    "migration:generate": "npm run typeorm migration:generate src/database/migrations/migration"

Le fichier back-end/src/database/typeorm-cli.ts doit exporter par défaut un objet de type DataSource.

Migration initiale

Exécuter :

docker compose exec back-end npm run typeorm schema:drop

docker compose exec back-end npm run migration:generate
docker compose cp back-end:/app/src/database/migrations/ back-end/src/database

Migrations ultérieures

À chaque changement de schéma, exécuter le même script que pour la migration initiale :

docker compose exec back-end npm run migration:generate
docker compose cp back-end:/app/src/database/migrations/ back-end/src/database

On peut mettre ces deux instructions dans une commande du Makefile.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant