Doctrine y bases de datos Access

Hola qué tal? Resulta que estoy teniendo que conectar una aplicacion Symfony con una base de datos Access. Se que actualmente Doctrine no soporta este tipo de BD, pero encontré un proyecto en GitHub que podria ser que funcione: PDOAccessBundle.

El tema es que no estoy entendiendo bien cómo instalar el bundle desde AppKernel. Estoy tratando de instalarlo con el siguiente comando:

new PDOAccess\Doctrine\DBAL\Driver\PDOMdbLib\Driver()

Pero cuando corro mi app salta una excepción:

ClassNotFoundException in AppKernel.php line 32:
Attempted to load class "Driver" from namespace "PDOAccess\Doctrine\DBAL\Driver\PDOMdbLib".
Did you forget a "use" statement for e.g. "Doctrine\DBAL\Driver\DrizzlePDOMySql\Driver",
"Doctrine\DBAL\Driver\Mysqli\Driver", "Doctrine\DBAL\Driver\OCI8\Driver",
"Doctrine\DBAL\Driver\PDOIbm\Driver", "Doctrine\DBAL\Driver\PDOMySql\Driver",
"Doctrine\DBAL\Driver\PDOOracle\Driver", "Doctrine\DBAL\Driver\PDOPgSql\Driver",
"Doctrine\DBAL\Driver\PDOSqlite\Driver", "Doctrine\DBAL\Driver\PDOSqlsrv\Driver",
"Doctrine\DBAL\Driver\SQLAnywhere\Driver", "Doctrine\DBAL\Driver\SQLSrv\Driver"
or "Doctrine\DBAL\Driver"?

La estructura de mi vendor es:

- vendor
-- PDOAccess
--- Doctrine
---- DBAL
----- Driver
------ PDOMdbLib
------- Driver.php
------- Connection.php

El namespace que estoy usando dentro de las clases es:

namespace PDOAccess\Doctrine\DBAL\Driver\PDOMdbLib

Si alguien puede dar mano sería un golazo! :D desde ya muchas gracias!

Respuestas

#1

Me temo que no vas a poder registrar este bundle en AppKernel como se hace con cualquier otro bundle normal de Symfony. Creo que no vas a poder usar este bundle en tu proyecto por varias razones:

  • Hace más de 5 años que no se actualiza, por lo que es casi seguro que no te va a funcionar en las versiones más modernas de Symfony.
  • No es un bundle "de verdad", sino dos simples clases PHP, por lo que no vas a tener integración con Symfony.
  • El propio README del bundle dice que solo sive para importar datos de bases de datos Access, por lo que no vas a poder usarlo con tus entidades como si fuera una base de datos normal.

Mi recomendación sería que intentaras utilizar algún programa o crear algún comando de consola que convierta tu base de datos Access en una base de datos "normal" (MySQL, SQLite, PostgreSQL, etc.) y así ya te olvidas de Access en tu aplicación Symfony.

#2

Muchas gracias javier por tu rapida respuesta, te voy hacer caso y voy hacer exactamente lo que decis!

Supuse que el proyecto en github no iba a ser compatible con Symfony.

De nuevo Muchas gracias!