Sobes.tech
Junior — Middle

Wyjaśnij koncepcję migracji w systemach ORM i ich rolę w zarządzaniu schematem bazy danych.

sobes.tech AI

Odpowiedź od AI

Migracje w ORM to mechanizm zarządzania zmianami struktury bazy danych (schematu) w trakcie rozwoju aplikacji. Pozwalają one na sekwencyjne stosowanie zmian (tworzenie, modyfikowanie, usuwanie tabel, kolumn, indeksów itp.) w bazie danych, zachowując historię tych zmian.

Rola migracji:

  • Zapewniają spójność schematu bazy danych z modelem danych w kodzie.
  • Ułatwiają aktualizację bazy danych przy zmianach w aplikacji.
  • Upraszczają pracę zespołową, ponieważ migracje można przechowywać w systemie kontroli wersji.
  • Pozwalają na cofanie zmian w razie potrzeby.

Przykład: w Node.js z użyciem Sequelize migracja może wyglądać tak:

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');
  }
};

W ten sposób migracje pomagają zarządzać ewolucją bazy danych w kontrolowany i powtarzalny sposób.