Przy zarzÄ?dzaniu listÄ? kategori lub stron/podstron przydaje siÄ? bardzo relacja zagnie??d??ona. Doctrine 1.2 pozwala na wykorzystanie zagnie??d??onego zbioru(NestedSet), dostÄ?pnego jako behaviour.
Czytaj dalej
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.