gpt4 book ai didi

php - Symfony 学说 :schema:update not working

转载 作者:可可西里 更新时间:2023-10-31 22:19:34 25 4
gpt4 key购买 nike

我有一个奇怪的问题:我有一个应用程序 symfony 2.3(与奏鸣曲用户)我创建了一个包含一个实体的包 - 该实体的创建没有问题然后我不得不修改实体,现在似乎无法修改架构:

为了看看会发生什么,我用 +1 增加了所有字符串的长度

实体代码(带注解):

namespace Too\ConfigAppBundle\Entity;

use Gedmo\Mapping\Annotation as Gedmo;
use Doctrine\ORM\Mapping as ORM;

/**
* ConfigApp
*
* @ORM\Table(name="ConfigApp")
* @ORM\Entity(repositoryClass="Too\ConfigAppBundle\Entity\ActiviteRepository")
*/
class ConfigApp
{
/**
* @var integer $id
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;

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

/**
* @var string $nomSlug
*
* @Gedmo\Slug(fields={"nom"}, updatable=true, separator="_")
* @ORM\Column(name="nomSlug", type="string", length=101, nullable=true)
*/
private $nomSlug;

/**
* @var string $email
*
* @ORM\Column(name="email", type="string", length=151)
*/
private $email;

/**
* @var string $telephone
*
* @ORM\Column(name="telephone", type="string", length=16)
*/
private $telephone;

/**
* @var datetime $cree_le
*
* @Gedmo\Timestampable(on="create")
* @ORM\Column(name="cree_le", type="datetime")
*/
private $cree_le;

/**
* @var datetime $modifie_le
*
* @Gedmo\Timestampable(on="update")
* @ORM\Column(name="modifie_le", type="datetime")
*/
private $modifie_le;

...

现在查看结果:

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

CREATE TABLE ConfigApp (id INT AUTO_INCREMENT NOT NULL, nom VARCHAR(100) NOT NULL, nomSlug VARCHAR(100) NOT NULL, email VARCHAR(150) NOT NULL, telephone VARCHAR(15) NOT NULL, cree_le DATETIME NOT NULL, modifie_le DATETIME NOT NULL, PRIMARYKEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB

没有考虑新的长度:例如,字段 nom 的长度应为 101,但是 dump-sql 给出了 nom VARCHAR(100) !

任何人都可以尝试找出问题所在吗?谢谢!

编辑:我之前尝试使用以下方法清除缓存:* php app/console doctrine:cache:clear-metadata* php 应用程序/控制台缓存:清除* 通过删除缓存文件夹中的所有内容

我还尝试了 --dump-sql 和 --force。

这根本没有改变。欢迎任何提示!

最佳答案

我刚刚遇到了完全相同的问题:架构未更新。

请注意 --force 返回与 --dump-sql 完全相同的东西,唯一的区别是 --force 对数据库运行 SQL。

不过,就我而言,问题不是因为 .orm.xml 文件。这是因为我在 config_dev.xml 中设置了这个:

doctrine:
orm:
metadata_cache_driver:
type: memcached
host: localhost
port: 11211
instance_class: Memcached
query_cache_driver:
type: memcached
host: localhost
port: 11211
instance_class: Memcached
result_cache_driver:
type: memcached
host: localhost
port: 11211
instance_class: Memcached

即使我经常发出安慰:

php app/console cache:clear

memcached 数据未刷新。所以我不得不重新启动 memcached,然后一切都重新启动并运行了!

非常感谢您的问题,它让我找到了正确的位置。

更新:正如 Phil 在上面所建议的那样,运行此命令也可以解决问题:

php app/console doctrine:cache:clear-metadata

关于php - Symfony 学说 :schema:update not working,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19897915/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com