John Crawford
John Crawford

Reputation: 10061

Nothing to update "Doctrine"

I'm using Symfony2 with Doctrine to try and update a table schema. I was able to create the table. I was also able to populate the table. However after updating the comments in the Entity (I wanted some fields to become nullable), those changes did NOT get picked up.

I did create the entity with the "Annotations" option chosen. But when I added this line "nullable=true" to the Entity on the field imageName nothing happens. ie: when I run "./app/console doctrine:schema:update" I get the following output "Nothing to update - your database is already in sync with the current entity metadata."

Note, I have tried deleted the table via: ./app/console doctrine:database:drop --force and then recreating it via: ./app/console doctrine:database:create and then also ./app/console doctrine:schema:create but it STILL does not add my updated nullable field to imageName.

Upvotes: 1

Views: 4753

Answers (5)

alvery
alvery

Reputation: 1983

Check doctrine.yaml config file for orm mappings:

mappings:
        App:
            is_bundle: false
            type: annotation
            dir: '%kernel.project_dir%/src/Entity'
            prefix: 'App\Entity'
            alias: App

As you see here all entities should have prefix (namespace) App\Entity You have to check your entities namespace, it should be App\Entity or whatever you want in config

Upvotes: 0

Lajdák Marek
Lajdák Marek

Reputation: 3089

I has this problem too. Have you right annotation before class declaration?

/**
* 
* @ORM\Entity <- this does the trick
*/
class MyEntityName
{
...

Upvotes: 1

FlameStorm
FlameStorm

Reputation: 1014

For me, the key was to clear Redis cache.

php app/console redis:flushdb

Upvotes: 1

Blue Eye
Blue Eye

Reputation: 49

I had been stuck with this for almost 2 days. Removing all the file in /src/AppBundle/Resources/config/doctrine resolve my issue.

Upvotes: 1

John Crawford
John Crawford

Reputation: 10061

I was able to figure this out. I first of all created my entity "Foobar" using yml as the Configuration format. I then wanted to use "annotation" as the configuration format so I manually deleted the Entity folder (I only had one table created), however I did NOT delete the configuration yml in the Resources/config/doctrine/Foobar.orm.yml.

Thus when I created the entity again, this time using the annotation as the configuration format, it was still linking to the yml configuration. Removing that solved all the troubles.

I have however decided to stick to yml as I feel it is a little easier to read than the Doctrine Metadata found in the comments.

Upvotes: 2

Related Questions