crm*_*cco 3 php mysql doctrine symfony doctrine-orm
我正在我的Doctrine迁移中执行手动准备的语句.我正在这样做,因为我需要最后插入的ID来构建进一步的相关查询.使用标准addSql方法不允许这样做,因为它的性质是"排列"查询然后在最后执行它们.
有没有办法可以阻止显示以下错误信息?
Migration 20151102112832 was executed but did not result in any SQL statements.
执行了许多SQL语句,但是在调用我的方法时它们是执行的:
/**
* @param string $sql
*
* @throws DBALException
*/
private function runSql($sql)
{
$this->write($sql);
$stmt = $this->connection->prepare($sql);
$stmt->execute();
}
Run Code Online (Sandbox Code Playgroud)
你可以创建一个"无所事事"的sql:
public function up(Schema $schema)
{
$this->addSql('SELECT 1');
}
Run Code Online (Sandbox Code Playgroud)
小智 5
我认为这里最好的选择是展示您的迁移正在做什么。您可以通过发送带有注释字符串的 sql 请求来执行此操作并抑制警告消息。例如:
public function up(Schema $schema)
{
// Do not show warning on migrations.
$this->addSql('# Updating entities.');
}
Run Code Online (Sandbox Code Playgroud)