原则 2.orm:schema-tool:update .设置起始 ID



当我使用 ./bin/doctrine orm:fixtures:load 用示例数据填充表时,首先迁移设置自动增量表 ID,如 1,2,3,4,5 等......

在第二个orm:fixtures:load迁移命令后,它会清除所有数据并设置 id,如 5,6,7,8,9 等......

当我多次加载灯具时,如何将 AI ID 计数器重置为 1?

$ app/console help doctrine:fixtures:load

默认情况下,原则数据固定装置使用 DELETE 语句从中删除现有行 数据库。如果要改用 TRUNCATE 语句,可以使用 --purge-with-truncate 标志:

./app/console doctrine:fixtures:load --purge-with-truncate

截断将重置自动增量。

更新

控制台命令适用于 Symfony,但仅使用 Doctrine 应该相同:

./bin/doctrine orm:fixtures:load --purge-with-truncate

更新 #2 有关引发异常的评论

如果您有外键,则只能通过常规 SQL 重置AUTO_INCREMENT

$connection = $this->getEntityManager()->getConnection();
$connection->exec("ALTER TABLE <tablename> AUTO_INCREMENT = 1;");

在 Zend 2 中,我使用了下面提到的代码来截断并重置自动增量值为 1。在存储库中使用此代码。

// To delete all records
$queryBuilder = $this->createQueryBuilder('c');
$queryBuilder->delete();
$queryBuilder->getQuery()->execute();
//Reset table auto increment.
$tableName = $this->getClassMetadata()->getTableName();
$connection = $this->getEntityManager()->getConnection();
$connection->exec("ALTER TABLE " . $tableName . " AUTO_INCREMENT = 1;");

相关内容

  • 没有找到相关文章

最新更新