Error with doctrine mapping import #5891

Closed
opened 2026-01-22 15:21:22 +01:00 by admin · 1 comment
Owner

Originally created by @braianj on GitHub (Feb 16, 2018).

Originally assigned to: @Ocramius on GitHub.

Hello everyone

I'm trying to import a database already created for another project (not a symfony one), so I can use it inside a symfony project.

Validation works

    php bin/console doctrine:schema:validate
    [Mapping]  OK - The mapping files are correct.
    [Database] OK - The database schema is in sync with the mapping files.

But when I make php bin/console doctrine:mapping:import AppBundle annotation it return

In MappingException.php line 588:
It is not possible to map entity 'Tprovincia' with a composite primary
key as part of the primary key of another entity 'Tlocalidad#paiscod'.

This is de configuration of those tables

    CREATE TABLE tprovincia
    (
      paiscod smallint NOT NULL, -- Código de país
      procod smallint NOT NULL, -- Código de provincia
      prodes character varying(100) NOT NULL, -- Nombre de provincia
      prodesamp character varying(250) NOT NULL, -- Descripción ampliada de provincia
      prousupro character varying(30) NOT NULL, -- Pro Usu Pro
      profecpro timestamp without time zone NOT NULL, -- Pro Fec Pro
      CONSTRAINT tprovincia_pkey PRIMARY KEY (paiscod, procod),
      CONSTRAINT itprovincia1 FOREIGN KEY (paiscod)
          REFERENCES tpais (paiscod) MATCH SIMPLE
          ON UPDATE NO ACTION ON DELETE NO ACTION
    )
    WITH (
      OIDS=FALSE
    );

    CREATE TABLE tlocalidad
    (
      paiscod smallint NOT NULL, -- Código de país
      procod smallint NOT NULL, -- Código de provincia
      loccod integer NOT NULL, -- Código de localidad
      locdes character varying(100) NOT NULL, -- Descripción de localidad
      loccodpos character(8) NOT NULL, -- Código postal localidad
      locusupro character varying(30) NOT NULL, -- Loc Usu Pro
      locfecpro timestamp without time zone NOT NULL, -- Loc Fec Pro
      CONSTRAINT tlocalidad_pkey PRIMARY KEY (paiscod, procod, loccod),
      CONSTRAINT itlocalidad1 FOREIGN KEY (paiscod, procod)
          REFERENCES tprovincia (paiscod, procod) MATCH SIMPLE
          ON UPDATE NO ACTION ON DELETE NO ACTION
    )
    WITH (
      OIDS=FALSE
    );

One more thing, the database is a postgreSQL one.
Hope someone can help.
Thanks!

Originally created by @braianj on GitHub (Feb 16, 2018). Originally assigned to: @Ocramius on GitHub. Hello everyone I'm trying to import a database already created for another project (not a symfony one), so I can use it inside a symfony project. Validation works ``` php bin/console doctrine:schema:validate [Mapping] OK - The mapping files are correct. [Database] OK - The database schema is in sync with the mapping files. ``` But when I make `php bin/console doctrine:mapping:import AppBundle annotation` it return > In MappingException.php line 588: > It is not possible to map entity 'Tprovincia' with a composite primary > key as part of the primary key of another entity 'Tlocalidad#paiscod'. This is de configuration of those tables ``` CREATE TABLE tprovincia ( paiscod smallint NOT NULL, -- Código de país procod smallint NOT NULL, -- Código de provincia prodes character varying(100) NOT NULL, -- Nombre de provincia prodesamp character varying(250) NOT NULL, -- Descripción ampliada de provincia prousupro character varying(30) NOT NULL, -- Pro Usu Pro profecpro timestamp without time zone NOT NULL, -- Pro Fec Pro CONSTRAINT tprovincia_pkey PRIMARY KEY (paiscod, procod), CONSTRAINT itprovincia1 FOREIGN KEY (paiscod) REFERENCES tpais (paiscod) MATCH SIMPLE ON UPDATE NO ACTION ON DELETE NO ACTION ) WITH ( OIDS=FALSE ); CREATE TABLE tlocalidad ( paiscod smallint NOT NULL, -- Código de país procod smallint NOT NULL, -- Código de provincia loccod integer NOT NULL, -- Código de localidad locdes character varying(100) NOT NULL, -- Descripción de localidad loccodpos character(8) NOT NULL, -- Código postal localidad locusupro character varying(30) NOT NULL, -- Loc Usu Pro locfecpro timestamp without time zone NOT NULL, -- Loc Fec Pro CONSTRAINT tlocalidad_pkey PRIMARY KEY (paiscod, procod, loccod), CONSTRAINT itlocalidad1 FOREIGN KEY (paiscod, procod) REFERENCES tprovincia (paiscod, procod) MATCH SIMPLE ON UPDATE NO ACTION ON DELETE NO ACTION ) WITH ( OIDS=FALSE ); ``` One more thing, the database is a postgreSQL one. Hope someone can help. Thanks!
admin added the InvalidQuestion labels 2026-01-22 15:21:22 +01:00
admin closed this issue 2026-01-22 15:21:23 +01:00
Author
Owner

@Ocramius commented on GitHub (Feb 16, 2018):

@braianj that is indeed something that the reverse engineering tools cannot do. That's why you get such an exception: it's a known limitation :-)

@Ocramius commented on GitHub (Feb 16, 2018): @braianj that is indeed something that the reverse engineering tools cannot do. That's why you get such an exception: it's a known limitation :-)
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: doctrine/archived-orm#5891