doctrine / DoctrineFixturesBundle

Symfony integration for the doctrine/data-fixtures library
MIT License
2.45k stars 202 forks source link

How to add table prefix when I use doctrine:fixtures:load #293

Open emass293 opened 5 years ago

emass293 commented 5 years ago

I have a service like

 App\Doctrine\TableSchema:
        arguments:
            $prefix: '%env(string:DATABASE_PREFIX)%'
        tags:
            - { name: doctrine.event_subscriber, connection: default }

This service works well width the command 'doctrine:schema:create'

gubler commented 2 years ago

This is a problem I am running into as well. But weirdly, with only a single entity (my user entity). All other entities are working fine. And using the same process in another application the prefix works fine with all of my Entities.

When I use the example from the Doctrine cookbook for adding table prefixes (https://www.doctrine-project.org/projects/doctrine-orm/en/2.11/cookbook/sql-table-prefixes.html) and I go to my site I can see in the Symfony debug bar that the prefix is used by Doctrine for my User entity.

However, when I try to load fixtures (via doctrine:fixtures:load) the prefix is not used (for either persisting or for reading from the database). Essentially, the loadMetaData event is not getting emitted for only my User entity, and only when using fixtures.

Its not a caching issue because I just got a new computer and this problem existed on the old computer and now the new one after a fresh install of the code and composer install.

I am sure this is something weird that I've done, but I can't find where. Nothing I can see is different with the User entity vs. other entities that are getting the prefix added. Any ideas where I should look to find out what is going wrong?