Ctrl K
ComunidadGuías…

server/migrations/20260401000000-add-documentId-to-share-subscriptions.js

Rama main · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
"use strict";

module.exports = {
  async up(queryInterface, Sequelize) {
    return queryInterface.sequelize.transaction(async (transaction) => {
      // Remove all existing records as they lack document scope
      await queryInterface.bulkDelete(
        "share_subscriptions",
        {},
        { transaction }
      );

      await queryInterface.addColumn(
        "share_subscriptions",
        "documentId",
        {
          type: Sequelize.UUID,
          allowNull: false,
          references: {
            model: "documents",
            key: "id",
          },
          onDelete: "CASCADE",
        },
        { transaction }
      );

      // Replace old unique index with one that includes documentId
      await queryInterface.removeIndex(
        "share_subscriptions",
        ["shareId", "emailFingerprint"],
        { transaction }
      );

      await queryInterface.addIndex(
        "share_subscriptions",
        ["shareId", "documentId", "emailFingerprint"],
        { unique: true, transaction }
      );
    });
  },

  async down(queryInterface) {
    return queryInterface.sequelize.transaction(async (transaction) => {
      await queryInterface.removeIndex(
        "share_subscriptions",
        ["shareId", "documentId", "emailFingerprint"],
        { transaction }
      );

      await queryInterface.addIndex(
        "share_subscriptions",
        ["shareId", "emailFingerprint"],
        { unique: true, transaction }
      );

      await queryInterface.removeColumn("share_subscriptions", "documentId", {
        transaction,
      });
    });
  },
};