Symfony和教义使迁移无效

Mar*_*ala 6 php mysql doctrine symfony doctrine-orm

教义正在生成symfony中的迁移,并且在运行迁移后没有任何变化,因此在下一个diff期间是相同的。如何使教义不产生这种迁移?手动运行alter table命令不会删除列排序规则。

bin/console doctrine:migration:diff
Run Code Online (Sandbox Code Playgroud)

$this->addSql('ALTER TABLE session CHANGE sess_id sess_id VARCHAR(128) NOT NULL');
Run Code Online (Sandbox Code Playgroud)

$this->addSql('ALTER TABLE session CHANGE sess_id sess_id VARCHAR(128) NOT NULL COLLATE utf8_unicode_ci');
Run Code Online (Sandbox Code Playgroud)

表看起来像这样:

show create table session;    
Run Code Online (Sandbox Code Playgroud)

创建表sessionsess_idvarchar(128)COLLATE utf8_unicode_ci NOT NULL, sess_datalongblob NOT NULL, sess_timeint(11)NOT NULL, sess_lifetimeint(11)NOT NULL,PRIMARY KEY(sess_id))ENGINE = InnoDB DEFAULT CHARSET = utf8 COLLATE = utf8_unicode_ci

实体添加排序规则如下

<?php

namespace App\Entity;

use Doctrine\ORM\Mapping as ORM;

/**
 * Session
 *
 * @ORM\Table(name="session")
 * @ORM\Entity(repositoryClass="App\Repository\SessionRepository")
 */
class Session
{
    /**
     * @var string
     *
     * @ORM\Column(name="sess_id", type="string", length=128, options={"collation":"utf8_unicode_ci"})
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    private $id;

    /**
     * @var string
     *
     * @ORM\Column(name="sess_data", type="blob")
     */
    private $sessData;

    /**
     * @var int
     *
     * @ORM\Column(name="sess_time", type="integer")
     */
    private $sessTime;

    /**
     * @var int
     *
     * @ORM\Column(name="sess_lifetime", type="integer")
     */
    private $sessLifetime;


    /**
     * Get id
     *
     * @return string
     */
    public function getId()
    {
        return $this->id;
    }

    /**
     * Get sessData
     *
     * @return string
     */
    public function getSessData()
    {
        return $this->sessData;
    }

    /**
     * Set sessData
     *
     * @param string $sessData
     *
     * @return Session
     */
    public function setSessData($sessData)
    {
        $this->sessData = $sessData;

        return $this;
    }

    /**
     * Get sessTime
     *
     * @return int
     */
    public function getSessTime()
    {
        return $this->sessTime;
    }

    /**
     * Set sessTime
     *
     * @param integer $sessTime
     *
     * @return Session
     */
    public function setSessTime($sessTime)
    {
        $this->sessTime = $sessTime;

        return $this;
    }

    /**
     * Get sessLifetime
     *
     * @return int
     */
    public function getSessLifetime()
    {
        return $this->sessLifetime;
    }

    /**
     * Set sessLifetime
     *
     * @param integer $sessLifetime
     *
     * @return Session
     */
    public function setSessLifetime($sessLifetime)
    {
        $this->sessLifetime = $sessLifetime;

        return $this;
    }
}
Run Code Online (Sandbox Code Playgroud)

vpa*_*ade 0

尝试将其添加到列注释中:

/**
 * @var string
 *
 * @ORM\Column(options={"collation":"utf8_unicode_ci"})
 */
private $sess_id;
Run Code Online (Sandbox Code Playgroud)