前提・実現したいこと
EC-CUBE4.0.5で開発を行っています。
cronを使用して1日1回、自動的に処理をする機能を作りました。
dev(開発者モード)では正常に動いていましたが、prod(本番モード)にすると動かなくなり下記のエラーが出るようになりました。
categoryテーブルがないと言っているのだとは思いますが、categoryテーブルは存在しています。
(base_infoテーブルでも試してみましたがbase_infoがないと同じエラーになります)
発生している問題・エラーメッセージ
In AbstractSQLiteDriver.php line 43: An exception occurred while executing 'SELECT d0_.id AS id_0,(略)IN ('category') ORDER BY d0_.sort_no DESC, d1_.sort_no DESC, d2_.sort_no DESC, d3_.sort_no DESC, d4_.sort_no DESC': SQLSTATE[HY000]: General error: 1 no such table: dtb_category
In PDOConnection.php line 90: SQLSTATE[HY000]: General error: 1 no such table: dtb_category
In PDOConnection.php line 88: SQLSTATE[HY000]: General error: 1 no such table: dtb_category
該当のソースコード
PHP
1<?php 2namespace Customize\Command; 3 4use Doctrine\ORM\EntityManagerInterface; 5use Symfony\Component\Console\Command\Command; 6use Symfony\Component\Console\Input\InputArgument; 7use Symfony\Component\Console\Input\InputInterface; 8use Symfony\Component\Console\Output\OutputInterface; 9use Symfony\Component\Console\Style\SymfonyStyle; 10use Eccube\Repository\CategoryRepository; 11 12class TestCommand extends Command 13{ 14 protected static $defaultName = 'eccube:customize:test-update'; 15 16 protected $categoryRepository; 17 18 public function __construct( 19 CategoryRepository $categoryRepository 20 ) { 21 parent::__construct(); 22 $this->categoryRepository = $categoryRepository; 23 } 24 25 protected function execute(InputInterface $input, OutputInterface $output) 26 { 27 $Categories = $this->categoryRepository->getList(); 28 // 以下略(ここでエラーになる) 29 } 30}
試したこと
キャッシュは一度全削除してみましたが同じ結果でした。
$Categories = $this->categoryRepository->getList();
の部分は他のところ(通常のControllerなど)で使用していますが特に問題なく動作しています。
動作チェックはcronと直接コマンドを叩いてみても同じエラーになります。
調べてもどうしてもわからないので、投稿してみました。
どうかお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。