有時,當您在尋找性能時,您需要使用某種複雜功能和觸發器將一些責任委託給數據庫。我想知道當doctrine:schema:update命令被調用時,處理這些自定義sql函數以創建/更新的最佳實踐是什麼。如何處理架構更新上的自定義sql函數?
4
A
回答
0
我不知道如何實現自動運行其他SQL代碼,但您可以使用DoctrineMigration。它是手動運行的,但你可以編寫自定義的SQL和控制版本 - 文件包含創建日期,使用的遷移名稱將存儲在數據庫中。
1
你有更容易的解決方案(我認爲)是創建自己的命令,在裏面做你的邏輯,並在最後調用doctrine:schema:update
。
爲此,您可以從UpdateSchemaDoctrineCommand擴展您的命令或在您的命令中使用Process。
我更喜歡第一個解決方案,我也會告訴你。
創建src/Acme/AppBundle/Command/CustomUpdateSchemaDoctrineCommand.php
(例如,使用自己的包之一)
命令之後,這樣從父命令擴展它:
<?php
namespace Acme\AppBundle\Command;
use Symfony\Component\Console\Input\InputOption;
use Symfony\Component\Console\Input\InputInterface;
use Symfony\Component\Console\Output\OutputInterface;
use Doctrine\Bundle\DoctrineBundle\Command\Proxy\UpdateSchemaDoctrineCommand;
class CustomUpdateSchemaDoctrineCommand extends UpdateSchemaDoctrineCommand
{
protected function configure()
{
parent::configure();
$this->setName('custom:schema:update')
}
protected function execute(InputInterface $input, OutputInterface $output)
{
// Do your logic
// Update your database schema
return parent::execute($input, $output);
}
}
如果你需要一個工具,允許你運行SQL遷移,使用DoctrineMigrationsBundle
相關問題
- 1. Solr的和自定義更新處理
- 2. 刷新構建定義處理參數自定義類型
- 3. 構造函數沒有定義[處理]
- 4. 如何處理自定義結果視圖的NSFetchedResultsControllerDelegate更新
- 5. KnockoutJS不調用自定義綁定處理程序中的更新函數
- 6. 自動更新自定義函數
- 7. 如何處理的LINQ to SQL架構更改
- 8. SQL如何處理用戶定義函數中的異常?
- 9. 如何處理Google App Engine上更新的JDO類定義
- 10. 構造函數注入防止自定義資源處理
- 11. AWS自定義Windows AMI - 如何處理更新?
- 12. 如何審計SQL Server架構更新
- 13. 如何包含自定義SQL函數
- 14. 處理MongoDB架構更改
- 15. 如何理解Wordpress自定義函數?
- 16. UserCake中的自定義PHP SQL更新函數
- 17. 如何處理連字符GraphQL架構定義
- 18. 如何更改phpstorm自定義構造函數模板?
- 19. StackMob自定義代碼更新架構的Get請求
- 20. 如何在構造函數的新創建的onjects上定義getter函數?
- 21. Python pickle:處理更新的類定義
- 22. 實體框架如何處理SQL Server架構?
- 23. 如何在Strongloop上爲自定義遠程方法設置自定義架構
- 24. 如何處理自定義視圖框架
- 25. 自定義處理
- 26. 如何從功能內確定PL/SQL函數的架構
- 27. 學說自定義映射型架構更新
- 28. 淘汰賽自定義綁定處理程序不更新
- 29. 如何更新EventSource架構
- 30. 如何處理構造函數?
我會(並且)使用[doctrine:migrations](http://symfony.com/doc/current/bundles/DoctrineMigrationsBundle/index.html)。您可以編輯遷移文件來做任何你喜歡的事情。這些可以從cli運行。可能接近你要找的東西。 – DevDonkey