Archiwa tagu: symfony

Doctrine: Tworzenie tabel w utf-8

Problem:

Po zbudowaniu projektu symfony nie wy??wietlaj? si? na stronie polskie znaki znaki diakrytyczne.

Diagnoza:

Gdy serwer MySQL ma w domy??lnej konfiiguracji charset Latin-2 oraz por??wnywanie jest r??wnie?? domy??lnie ustalone na Latin-2, a my wykonamy

php symfony doctrine:build --all --and-load --no-confirmation

To dostaniemy pi?kn? baz? danych na domy??lnych ustawieniach. I przy wy??wietlaniu polskich znak??w diakrytycznych b?d? wyskakiwa??y krzaki. By uchroni? si? przed tak? sytuacj?.

Rozwi?zanie:

Nale??y zmodyfikowa? wszystkie tabele w schemacie (schema.yml) o dodatkowe opcje:

Tabela:
  columns:
    kolumna_1: {type: string(255)}
    kolumna_2: {type: clob}
  options:
    type: MyISAM
    collate: utf8_unicode_ci
    charset: utf8

Options pozwala na ustalenie silnika MyISAM / InnoDB oraz metody por??wna?? i kodowania znak??w, o kt??re nam chodzi.

SQLSTATE[HY000]: General error: 1005 Can’t create table

Je??eli przy pr??bie wywo??ania polecenia:

$symfony doctrine:insert-sql

Wyskakuje Ci b???d

SQLSTATE[HY000]: General error: 1005 Can't create table 'TwojaBazaDanych.#sql-6c_2d' (errno: 121)

To znaczy ??e mysql nie mo??e utworzy? relacji mi?dzy obiektami, z trywialnego powodu pole klucza obcego jest r????nego typu od pola powi?zanego w lokalnej tabeli.

Czytaj dalej