Sobes.tech
Junior — Middle

Explique o conceito de migrações em sistemas ORM e seu papel na gestão do esquema do banco de dados.

sobes.tech IA

Resposta da IA

As migrações em ORM são um mecanismo para gerir as alterações na estrutura da base de dados (esquema) durante o desenvolvimento da aplicação. Permitem aplicar sequencialmente alterações (criar, modificar, eliminar tabelas, colunas, índices, etc.) na base de dados, mantendo um histórico dessas alterações.

Papel das migrações:

  • Garantem a coerência do esquema da base de dados com o modelo de dados no código.
  • Facilitam a atualização da base de dados quando há alterações na aplicação.
  • Simplificam o trabalho em equipa, pois as migrações podem ser guardadas num sistema de controlo de versões.
  • Permitem reverter alterações se necessário.

Exemplo: em Node.js, usando Sequelize, uma migração pode parecer assim:

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

Assim, as migrações ajudam a gerir a evolução da base de dados de forma controlada e reproduzível.