我在我的应用程序中添加了一个新的包和实体。我创建了一个 User.orm.xml 文件并成功地从命令行生成了实体。现在我想在我的数据库中创建那个额外的表。
当我运行时:
php app/console doctrine:schema:update --force
我得到一个错误。这让我想到了两个问题:
1)创建一个表的语法是什么,只是新的用户实体?
2)可能导致以下错误的原因。我没有更改任何其他 orm 文件。但是,我确实在实体中手动输入了一对多关系。可能是相关的:
[Doctrine\DBAL\DBALException]
An exception occurred while executing 'ALTER TABLE report CHANGE id id INT AUTO_INCREMENT NOT NULL':
SQLSTATE[HY000]: General error: 1025 Error on rename of './dbname/#sql-7e5_7' to './dbname/report' (errno: 150)
[PDOException]
dbname SQLSTATE[HY000]: General error: 1025 Error on rename of './dbname/#sql-7e5_7' to './dbname/report' (errno: 150)
“report”和“reportcolumn”这两个表是相关的。在 Entity/reportcolumn.php 中,它被注释为,但我没有在最初创建 db 的 orm 文件中反映它:
/**
* @var \Acme\DataBundle\Entity\Report
*
* @ORM\ManyToOne(targetEntity="Acme\DataBundle\Entity\Report")
* @ORM\JoinColumns({
* @ORM\JoinColumn(name="reportid", referencedColumnName="id")
* })
*/
private $reportid;