Sobes.tech
Junior — Middle

Explicați conceptul de migrații în sistemele ORM și rolul lor în gestionarea schemei bazei de date.

sobes.tech AI

Răspuns de la AI

Migrațiile în ORM sunt un mecanism pentru gestionarea modificărilor structurii bazei de date (schema) în timpul dezvoltării aplicației. Ele permit aplicarea secvențială a modificărilor (crearea, modificarea, ștergerea tabelelor, coloanelor, indexurilor etc.) în baza de date, păstrând un istoric al acestor modificări.

Rolul migrațiilor:

  • Asigură coerența schemei bazei de date cu modelul de date din cod.
  • Facilitează actualizarea bazei de date în cazul modificărilor în aplicație.
  • Simplifică munca în echipă, deoarece migrațiile pot fi stocate în sistemul de control al versiunilor.
  • Permite revertarea modificărilor dacă este necesar.

Exemplu: în Node.js, folosind Sequelize, o migrare poate arăta astfel:

module.exports = {
  up: async (queryInterface, Sequelize) => {
    await queryInterface.createTable('Users', {
      id: { type: Sequelize.INTEGER, primaryKey: true, autoIncrement: true },
      name: { type: Sequelize.STRING, allowNull: false },
      createdAt: Sequelize.DATE,
      updatedAt: Sequelize.DATE
    });
  },
  down: async (queryInterface) => {
    await queryInterface.dropTable('Users');
  }
};

Astfel, migrațiile ajută la gestionarea evoluției bazei de date într-un mod controlat și reproductibil.