如何在symfony中使用模式(Oracle)?

时间:2014-07-07 22:39:42

标签: oracle symfony doctrine tablespace

我有这些实体,在每个实体上都定义了“name”和“schema”,参数在@ORM \ Table注释中,但是doctrine不会在sql上转储模式。

更新:如果我将@ORM \ Table参数更改为(name =“RRHH.usuario”)转储不显示sql,现在我使用“doctrine / orm”:“~2.2,> = 2.2.3“and”doctrine / doctrine-bundle“:”v1.2.0“。

更新:版本“doctrine / orm”:“2.4。 @dev”,“doctrine / doctrine-bundle”:“1.3。 @dev”,同样的问题。

/**
 *  Entidad Usuario
 *
 * @ORM\Entity
 * @ORM\Table(name="usuario", schema="RRHH")
 */
class Usuario implements UserInterface
{
...
}

/**
 * Entidad Rol
 *
 * @ORM\Entity
 * @ORM\Table(name="rol", schema="RRHH")
 */
class Rol implements RoleInterface{
...
}

php app / console doctrine:schema:create --dump-sql

CREATE TABLE rol
(
   id     NUMBER(10) NOT NULL,
   nombre VARCHAR2(255) NOT NULL,
   PRIMARY KEY(id)
);

CREATE TABLE usuario
  (
    id       NUMBER(10) NOT NULL,
    usuario  VARCHAR2(255) NOT NULL,
    password VARCHAR2(255) NOT NULL,
    salt     VARCHAR2(255) NOT NULL,
    PRIMARY KEY(id)
  );

CREATE TABLE usuario_rol
  (
    usuario_id NUMBER(10) NOT NULL,
    rol_id     NUMBER(10) NOT NULL,
    PRIMARY KEY(usuario_id, rol_id)
  );

CREATE INDEX IDX_72EDD1A4DB38439E ON usuario_rol (usuario_id);
CREATE INDEX IDX_72EDD1A44BAB96C ON usuario_rol(rol_id);

CREATE SEQUENCE rol_id_seq START WITH 1 MINVALUE 1 INCREMENT BY 1;

CREATE SEQUENCE usuario_id_seq START WITH 1 MINVALUE 1 INCREMENT BY 1;

ALTER TABLE usuario_rol ADD CONSTRAINT FK_72EDD1A4DB38439E FOREIGN KEY (usuario_id) REFERENCES usuario (id);

 ALTER TABLE usuario_rol ADD CONSTRAINT FK_72EDD1A44BAB96C FOREIGN KEY (rol_id) REFERENCES rol (id);

1 个答案:

答案 0 :(得分:0)

根据doc,注释中没有schema选项。解决方法可能是在您的tablename中指向架构,因此:

/**
 *  Entidad Usuario
 *
 * @ORM\Entity
 * @ORM\Table(name="rrhh.usuario")
 */
class Usuario implements UserInterface
{
...
}