を更新するとき、それは追加することは可能ですSQLスクリプトを実行する(または実行):カスタムSQLクエリをデータベース・スキーマ・ドクトリン
app/console doctrine:schema:update --force
を私はすべてのビューを作成するスクリプトを持っていると私はそれらを更新することにしたいです私がデータベーススキーマを更新するたびに。
を更新するとき、それは追加することは可能ですSQLスクリプトを実行する(または実行):カスタムSQLクエリをデータベース・スキーマ・ドクトリン
app/console doctrine:schema:update --force
を私はすべてのビューを作成するスクリプトを持っていると私はそれらを更新することにしたいです私がデータベーススキーマを更新するたびに。
もちろん、UpdateSchemaCommand
コマンドを拡張してEntityManager
をdefining the command as a serviceに挿入することができます。
コマンド:
// src/AppBundle/Command/CustomUpdateSchemaCommand.php
<?php
namespace AppBundle\Command;
use Doctrine\Bundle\DoctrineBundle\Command\Proxy\UpdateSchemaDoctrineCommand;
use Doctrine\ORM\EntityManagerInterface;
use Symfony\Component\Console\Input\ArrayInput;
use Symfony\Component\Console\Input\InputInterface;
use Symfony\Component\Console\Output\OutputInterface;
use Symfony\Component\Console\Command\Command;
class CustomUpdateSchemaCommand extends UpdateSchemaDoctrineCommand
{
/** @var EntityManagerInterface */
private $em;
/**
* @param EntityManagerInterface $em
*/
public function __construct(EntityManagerInterface $em)
{
$this->em = $em;
parent::__construct();
}
/**
* {@inheritDoc}
*/
protected function configure()
{
parent::configure();
}
/**
* {@inheritDoc}
*/
protected function execute(InputInterface $input, OutputInterface $output)
{
$output->writeln('Hello world');
$conn = $this->em->getConnection();
$conn->exec(/* QUERY */);
return parent::execute($input, $output);
}
}
サービス:
// app/config/services.yml
app.command.custom_schema_update_command:
class: App\SportBundle\Command\CustomUpdateSchemaCommand
arguments: ["@doctrine.orm.entity_manager"]
tags:
- { name: console.command }
は、この情報がお役に立てば幸いです。
うまくいった!ありがとう@チャラール –
ようこそ@MNIFAKRAM。ちょうどその場合、なぜあなたは答えに投票していないのですか?あなたは、答えにないか、あるいはより良いものがあると思いますか?時にはSO初心者が投票を忘れてしまった。 – chalasr
申し訳ありませんが、私は忘れました。 –
symfonyでカスタムコンソールのコマンドを作成できます。[link](http://symfony.com/doc/current/cookbook/console/console_command.html)。 –
doctrineコマンドを拡張する方法はありますか? –
この[link](http://symfony.com/doc/current/cookbook/console/console_command.html#invoking-other-commands)をご覧ください –