ORM & Generare model utilizator

Sequelize + SQLite

1

Structură foldere necesară pentru baza de date

În cadrul folderului server, creăm un subfolder numit database, care va gestiona întreaga configurare a modelelor pentru baza de date.

Folderul database va conține, la rândul său, fișierul server.js și un subfolder models.

În folderul models vor fi stocate toate modelele SQLite pe care dorim să le includem în baza de date.

circle-info

Structura dorită a fișierelor:

server/ │ ├── database/ │ ├── models/ │ │ ├── User.js │ │ └── index.js │ ├── .env ├── .gitignore ├── package.json ├── package-lock.json ├── server.js └── index.js

2

Generarea modelului pentru utilizator

În cadrul folderului models, generăm fișierul User.js, care va conține toate propietățile pe care ni le dorim să le aibă:

3

Crearea instanței de Sequelize

În cadrul fișierului server.js importăm librăria Sequelize, inclusiv cu tot folderul de modele, după care creăm o instanță Sequelize pentru baza de date, specificând:

  • dialect: "sqlite" – tipul bazei de date.

  • storage: "database/db.sqlite" – folderul și numele fișierului unde se stochează baza de date.

  • logging: false – dezactivarea logării interogărilor SQL în consolă.

Ulterior, sincronizăm modelele cu baza de date folosind sequelize.sync(), ceea ce creează tabelele în baza de date dacă nu există.

După ce am generat modelul de utilizator, în cadrul folderului models generăm un nou fișier index.js care se va ocupa de generarea viitoarelor relații dintre tabele.

// server/database/models/index.js
const User = require('./User');
// Associations
module.exports = { User };
4

Generare baza de date

Ne mutăm în fișierul index.js și importăm modelul de User, pe baza căruia se va genera automat baza de date în momentul în care pornește serverul.

Dacă repornim serverul, ar trebui ca baza de date cu numele "db.sqlite" să fie generată în folderul database, iar în consolă să primim mesajul "Model successfully (re)created".

Last updated