Doctrine 1 迁移,如何执行原始 SQL
Doctrine 1 Migrations, How to execute raw SQL
我的迁移逻辑包括相当复杂的操作,例如将数据插入刚创建的表和创建存储过程。是否有任何方法 create/generate 使用 Doctrine 1 在 Symfony 1 上进行正确迁移?
我认为最快的方法是使用我需要的 RAW SQL 命令创建迁移。
你可以试试这个:
$connection = Doctrine_Manager::getInstance()->getCurrentConnection();
$results = $connection->execute(" -- YOUR RAW SQL -- ");
在这些情况下,我所做的是使用 symfony doctrine:generate-migration
命令创建一个空迁移 class,然后填写类似于此的 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();
}
我的迁移逻辑包括相当复杂的操作,例如将数据插入刚创建的表和创建存储过程。是否有任何方法 create/generate 使用 Doctrine 1 在 Symfony 1 上进行正确迁移? 我认为最快的方法是使用我需要的 RAW SQL 命令创建迁移。
你可以试试这个:
$connection = Doctrine_Manager::getInstance()->getCurrentConnection();
$results = $connection->execute(" -- YOUR RAW SQL -- ");
在这些情况下,我所做的是使用 symfony doctrine:generate-migration
命令创建一个空迁移 class,然后填写类似于此的 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();
}