学说:架构:更新不是更新表

bla*_*lah 2 php doctrine symfony doctrine-orm

为什么bin/console doctrine:schema:update --force不更新数据库表?

这是一个实体:

/**
 * @ORM\Table(name="country")
 * @ORM\Entity(repositoryClass="CoreBundle\Repository\CountryRepository")
 */
class Country
{
    /**
     * @var int
     *
     * @ORM\Column(name="id", type="integer")
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    private $id;

    /**
     * @var string
     *
     * @ORM\Column(name="name", type="string", unique=true)
     */
    private $name;

    /**
     * @var boolean
     *
     * @ORM\Column(name="active", type="boolean")
     */
    private $active;

    ....
    }
Run Code Online (Sandbox Code Playgroud)

country已创建,但只有id列。我不断收到信息,但未Nothing to update - your database is already in sync with the current entity metadata.添加列nameactive

我也添加了 Doctrine 配置

doctrine:
    dbal:
        driver:   pdo_mysql
        host:     "%database_host%"
        port:     "%database_port%"
        dbname:   "%database_name%"
        user:     "%database_user%"
        password: "%database_password%"
        charset:  UTF8

    orm:
        auto_generate_proxy_classes: "%kernel.debug%"
        naming_strategy: doctrine.orm.naming_strategy.underscore
        auto_mapping: true
Run Code Online (Sandbox Code Playgroud)

更新

问题出在 Redis 上。如果我从 config.yml 中删除学说缓存配置,一切正常

bla*_*lah 5

bin/console doctrine:cache:clear-metadata命令解决了问题,表格已更新