Archiwa tagu: mysql

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