Database FAIL - The database schema is not in sync with the current mapping file

后端 未结 7 1600
南方客
南方客 2020-12-10 04:03

Can anybody explain the following doctrine schema validation error message please:

\"The

相关标签:
7条回答
  • 2020-12-10 04:37

    I have the same problem. Besides, when running

    php bin/console doctrine:schema:update --dump-sql
    

    It will always display same sql regardless I've executed the sql already. It looks like that above command fail to detect real difference between database schema and current entity metadata. I also verify that these kind of problem somehow is related to the database you used. Because I don't have such issues at least in MySQL 5.7.25, but MariaDB 10.2.24. check here for more info: https://github.com/symfony/symfony/issues/27166#issue-320494745

    P.S. MariaDB causes me other trouble like "index key length 767 bytes". Do not mean it's bad. But remind me 3 years ago the first time I decide to use MariaDB, posts/news saying how good it is comparing to MySQL which is just acquired by Oracle. And news saying MySQL is going to be different and then the panics.... (just personal opinion)

    0 讨论(0)
  • 2020-12-10 04:40

    It's simple: some field or relation, or entity, etc. has not yet been translated as a column or table in your database schema. Update your schema and you'll be fine.

    0 讨论(0)
  • 2020-12-10 04:41

    For anyone interested in this, re-generating my table schema produced the following look-up schema:

    CREATE TABLE `UserRoleLookup` (
      `user_id` int(11) NOT NULL,
      `user_role_id` int(11) NOT NULL,
      PRIMARY KEY (`user_id`,`user_role_id`),
      KEY `IDX_4511E771A76ED395` (`user_id`),
      KEY `IDX_4511E7718E0E3CA6` (`user_role_id`),
      CONSTRAINT `FK_4511E7718E0E3CA6` FOREIGN KEY (`user_role_id`) REFERENCES `UserRole` (`id`),
      CONSTRAINT `FK_4511E771A76ED395` FOREIGN KEY (`user_id`) REFERENCES `User` (`id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;\
    

    I guess symfony2-doctrine bundles aren't a big fan of unsigned integers, as I can see little change from the schema I posted. Anyway, problem solved.

    0 讨论(0)
  • 2020-12-10 04:42

    If you are running those commands:

    php bin/console doctrine:schema:update --force --complete --dump-sql
    

    and the generated SQL does not create new Entities (no CREATE TABLE), you better check if your mapping is okay. In my case I forgot to put this in the mapping:

     * @ORM\Entity
    
    0 讨论(0)
  • 2020-12-10 04:43

    Run this command to show the differences in the SQL without having to dump your db:

    php bin/console doctrine:schema:update --dump-sql

    You can also run the following command to perform the changes:

    php bin/console doctrine:schema:update --force --full-database

    For symfony2 it was

    php app/console doctrine:schema:update --force --full-database

    0 讨论(0)
  • 2020-12-10 04:47

    for Symfony3:

    app/console changed to bin/console, --full-database to --complete

    so the final command will be:

    php bin/console doctrine:schema:update --force --complete --dump-sql
    
    0 讨论(0)
提交回复
热议问题