Doctrine 1 Migrations,如何执行原始SQL

时间:2017-08-22 09:50:42

标签: php sql doctrine migration symfony1

我的迁移逻辑包括非常复杂的操作,例如将数据插入到刚创建的表和存储过程创建中。如果有任何方法使用Doctrine 1在Symfony 1上创建/生成正确的迁移? 我认为最快的方法是使用我需要的RAW SQL命令创建迁移。

2 个答案:

答案 0 :(得分:2)

在这些情况下,我使用symfony doctrine:generate-migration命令创建一个空的迁移类,然后填写类似于此的up()down()方法:

public function up()
{
    $dbh = Doctrine_Manager::connection()->getDbh();
    $query = "INSERT INTO `some_table` (`id`, `created_at`, `updated_at`)
              VALUES 
              ('1', NOW(), NOW()), 
              ('2', NOW(), NOW()),
              ('3', NOW(), NOW());
    ";
    $stmt = $dbh->prepare($query);
    $stmt->execute();
}

答案 1 :(得分:0)

你可以试试这个:

$connection = Doctrine_Manager::getInstance()->getCurrentConnection();
$results = $connection->execute(" -- YOUR RAW SQL -- ");