Symfony 1.4 + Doctrine 1.2: Camp de tip ENUM in schema.yml

In Symfony 1.4 + Doctrine 1.2 pentru a adauga tip ENUM pentru un camp, se trece type: ENUM la campul dorit.

Exemplu:

User:
 columns:
    id:
      type: integer
      primary: true
    sex:
      type: enum
      values: [barbat, femeie]
      default: barbat

Pentru a genera SQL-ul vom folosi comanda :

./symfony doctrine:build-sql 

Dupa rularea comenzii in terminal se va genera urmatorul SQL:

CREATE TABLE user (id BIGINT, sex BIGINT) DEFAULT 'barbat', PRIMARY KEY(id)) ENGINE = INNODB;

Dupa cum vedeti si voi s-au pierdut valorile pentru campul sex, doctrine-ul nu a tinut cont de type:enum. Ca sa tina cont de type:enum trebuie sa adaugam liniile #4 si #5 din urmatorul cod in databases.yml:

...
    param:
      username: root
      attributes:
        use_native_enum: true  
...

Dupa ce am modificat fisierul databases.yml, curatam cache-ul, generam SQL-ul, si vom obtine SQL-ul dorit:

CREATE TABLE user (id BIGINT, sex ENUM('barbat', 'femeie') DEFAULT 'barbat', PRIMARY KEY(id)) ENGINE = INNODB;

Lasă un răspuns

Completează mai jos detaliile despre tine sau dă clic pe un icon pentru autentificare:

Logo WordPress.com

Comentezi folosind contul tău WordPress.com. Dezautentificare / Schimbă )

Poză Twitter

Comentezi folosind contul tău Twitter. Dezautentificare / Schimbă )

Fotografie Facebook

Comentezi folosind contul tău Facebook. Dezautentificare / Schimbă )

Fotografie Google+

Comentezi folosind contul tău Google+. Dezautentificare / Schimbă )

Conectare la %s