Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Doctrine2 Ignore table of database

I'm using Doctrine 2 and I want to generate an ORM of my database but I don't want select all tables of the db.

For example, in this db :

  • Table 1 has no primary key
  • Table 2 is normal

I want to choose ONLY Table 2 with this command:

doctrine:mapping:convert --from-database yml ./src/Application/TestBundle/Resources/config/doctrine/metadata/orm --filter="Table2"

I have an error :

Table Table_1 has no primary key. Doctrine does not support reverse engineering from tables that don't have a primary key.

Ok I know , but I don't want my table 1 in my ORM. When my table 1 has primary key i can filter the tables. I've seen Generating a single Entity from existing database using symfony2 and doctrine, but it doesn't work.

like image 735
user2839159 Avatar asked Oct 21 '13 08:10

user2839159


2 Answers

In recent versions of the Doctrine bundle one has to configure schema filter on the connection level, so:

doctrine:
  dbal:
    default_connection: default
    connections:
      default: # <- your connection name
        url: '%env(DATABASE_URL)%'
        schema_filter: '#^(?!table_to_exclude)#'
like image 87
emix Avatar answered Oct 07 '22 11:10

emix


Ignoring the table was the solution:

doctrine:
    dbal:
        schema_filter: ~^(?!Table1)~
like image 38
Stephan Vierkant Avatar answered Oct 07 '22 11:10

Stephan Vierkant