Skip to content

[Bug] Aggregation will constantly show up in new Doctrine Migrations #361

Description

@keichinger
  • Symfony version: 5.3
  • Algolia Search Bundle version: 5.1.0
  • Algolia Client Version: 3.0.2
  • Language Version: PHP 7.4

Description

I could reproduce this issue in multiple projects now.

Creating a new Aggregation strictly following the tutorial at https://www.algolia.com/doc/framework-integration/symfony/advanced-use-cases/multiple-models-in-one-index/?client=php will work like a charm.

However, the only thing now is that when you're using doctrine/migrations v3.1.4 (and possibly older versions too - I couldn't test that yet) will cause that when you run php bin/console doctrine:migrations:diff -n that it'll create a new migration with the same SQL every single time.

The SQL in question is

        $this->addSql('ALTER TABLE aggregation_table_name CHANGE object_id object_id VARCHAR(255) NOT NULL');

While my Aggregation looks like this:

/**
 * @ORM\Entity()
 */
class EntityAEntityBAggregation extends Aggregator implements AlgoliaIndexedEntity
{
    public function getEntity () : AdvisorEntry
    {
        /** @var EntityA|EntityB $entity */
        $entity = $this->entity;

        return $entity;
    }


    /**
     * @inheritdoc
     */
    public static function getEntities () : array
    {
        return [
            EntityA::class,
            EntityB::class,
        ];
    }


    /**
     * @inheritdoc
     */
    public function getId () : ?int
    {
        /** @var AlgoliaIndexedEntity $entity */
        $entity = $this->entity;

        return $entity->getId();
    }


    /**
     * @inheritdoc
     */
    public function isIndexed () : bool
    {
        /** @var AlgoliaIndexedEntity $entity */
        $entity = $this->entity;

        return $entity->isIndexed();
    }
}

Steps To Reproduce

  • Create a new aggregation using the tutorial at https://www.algolia.com/doc/framework-integration/symfony/advanced-use-cases/multiple-models-in-one-index/?client=php
  • Install doctrine/migrations using composer require doctrine/migrations
  • Create your first migration using php bin/console doctrine:migrations:diff -n
  • Execute your first migration using php bin/console doctrine:migrations:migrate -n
  • Try re-creating a migration without making any changes to your entities using php bin/console doctrine:migrations:diff -n
  • Find your new migration with an update only to your aggregation's id field, which applies exactly the same changes as in your previous migration.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions