j-g*_*yon 8 mysql symfony doctrine-orm dbal
我有一个新的Symfony 2.8安装,带有doctrine和MySQL 5.6堆栈.
执行完之后doctrine:schema:update --force,我可以看到
Database schema updated successfully! "x" queries were executed
这是我的问题:即使我多次执行它,学说总是会发现架构差异.
有了--dump-sql,我可以看到所有这些查询都与:
但是,当我检查我的数据库时,这些列已经有一个NOT NULL.
以下是单个属性/列的示例:
class MyEntity
{
/**
* @ORM\Id
* @ORM\Column(type="string", length=5, name="cd_key")
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $code;
...
Run Code Online (Sandbox Code Playgroud)
这是一个结果SHOW CREATE TABLE my_entity;:
CREATE TABLE `my_entity` (
`cd_key` varchar(5) COLLATE utf8_unicode_ci NOT NULL,
`label` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
`number` int(11) NOT NULL,
PRIMARY KEY (`cd_key`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci ;
Run Code Online (Sandbox Code Playgroud)
在这里,查询原则尝试使用以下doctrine:schema:update命令执行:
ALTER TABLE my_entity CHANGE cd_key cd_key VARCHAR(5) NOT NULL;
Run Code Online (Sandbox Code Playgroud)
nullable=false@Column注释(事件,如果它已经定义为@Id),但没有效果.doctrine:schema:validate找不到任何映射问题(当然除了同步)有任何想法吗 ?
小智 -1
我遇到过类似的问题。对我来说,使用 SQL 删除表然后再次运行DOCTRINE:SCHEMA:UPDATE --FORCE对我来说很有效。
似乎手动执行一些 SQL 请求会混淆 Doctrine。
这么说,我假设您已经将@ORM\Table(name="my_entity")和放在@ORM\Entity(repositoryClass="myrepository")了您的类定义上;)。
希望有帮助。
| 归档时间: |
|
| 查看次数: |
1121 次 |
| 最近记录: |