BonBonSlick
@BonBonSlick
Vanilla Full Stack Web Architector

ORMPurger tables not found когда они есть?

lzakrzewski.com/2016/02/tricks-to-speed-up-databas...
Trick no 2: Purge database instead drop and create

/**
     * Refresh database with fixtures.
     */
    protected function refreshDatabase(): void
    {
        $purger = new ORMPurger($this->getEntityManager());
        $purger->purge();

 // код ниже работает, код выше не находит таблицы,на каждую выкидывает ексепшен что
// таблица не найдена

        // // drop database
        // $schemaTool = new SchemaTool($this->getEntityManager());
        // $schemaTool->dropDatabase();
        //
        // // create database
        // $metadatas = $this->entityManager->getMetadataFactory()->getAllMetadata();
        // if (!empty($metadatas)) {
        //     try {
        //         $schemaTool->createSchema($metadatas);
        //     } catch (\Exception $e) {
        //         dump($e);
        //     }
        // }
        //
        // // load test fixtures
        // $this->refreshFixtures();
    }


Пример, такое для всех таблиц, они есть в БД. Проверил коннект так же все ок.
EDoctrine\DBAL\Exception\TableNotFoundException {#4464
  -driverException: Doctrine\DBAL\Driver\PDOException {#4466
    -errorCode: 1
    -sqlState: "HY000"
    #message: "SQLSTATE[HY000]: General error: 1 no such table: pro6pp_postcode_street"
    #code: "HY000"
    #file: "./vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOConnection.php"
    #line: 43
    -previous: PDOException {#4596
      #message: "SQLSTATE[HY000]: General error: 1 no such table: pro6pp_postcode_street"
      #code: "HY000"
      #file: "./vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOConnection.php"
      #line: 41
      +errorInfo: array:3 [
        0 => "HY000"
        1 => 1
        2 => "no such table: pro6pp_postcode_street"
      ]


Так же пробовал так
$conn       = $this->getEntityManager()->getConnection(); // "/tmp/site-db-test.db"
        $conn->exec('DELETE FROM users'); // table exists, but this thorws exception that it does not


Предположительно
doctrine:
  dbal:
    driver: pdo_sqlite
    path: /tmp/site-db-test.db // тут нет всех таблиц, а ORMPurger вызывает все что замаплены
    memory: false
    charset: UTF8


$conn       = $this->getEntityManager()->getConnection();
                    $schemaTool = new SchemaTool($this->getEntityManager());
    $schemaTool->createSchema($metadatas);

        dump($conn->exec('SELECT name FROM sqlite_master WHERE type = "table"')); // 0
        die;

Почему не находит таблицы?
  • Вопрос задан
  • 15 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через TM ID
Похожие вопросы