Aktywne Wpisy

Lonate +56
To jest cholernie smutne, jak dziecko mówi psychologowi, że nikt się z nim nie chce bawić w przedszkolu, a potem panie z przedszkola to potwierdzają, że jak dziecko podchodzi do jakiejś zabawki i pyta czy moze sie razem pobawić to pozostałe dzieci odchodzą, bo po prostu nie chcą się bawić z tym dzieckiem. Nie chcą, bo dziecko mocno wyraża swoje uczucia krzykiem i płaczem #autyzm
I tak jest lepiej, wcześniej
I tak jest lepiej, wcześniej

panDario +10




Mam w bazie danych tabelę
user. Są już tam użytkownicy, teraz chcę dodać kolumnęslug, która musi być unikalna (będę tego używał do wyświetlania nazwy użytkownika w pasku adresu). W encji piszę takie coś:/***
* @var string
*
* @Gedmo\Slug(fields={"name", "surname"}, updatable=true)
* @ORM\Column(name="slug", type="string", nullable=false, unique=true)
*/
protected $slug;
Kiedy jednak uruchamiam polecenie
php app/console doctrine:schema:update --force, to zwraca mi błąd[Doctrine\DBAL\Exception\UniqueConstraintViolationException]An exception occurred while executing 'CREATE UNIQUE INDEX UNIQ_8D93D649989D9B62 ON user (slug)':
SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '' for key 'UNIQ_8D93D649989D9B62'
Na pustej bazie danych jest ok, ale gdy jest conajmniej 2 użytkowników, w kolumnie są 2 takie same wartościslug (null), stąd jest ten błąd.
W jaki sposób mogę ustawić domyślną wartość w kolumnie
slug, żeby wywołując poleceniephp app/console doctrine:schema:update --forcenie zwracałoby błędu?$this->addSql('UPDATE user SET slug = IF( name IS NULL AND surname IS NULL , SUBSTRING( MD5( RAND( ) ) FROM 1 FOR 16 ) , CONCAT( name, "-", surname ) ) WHERE slug = "";');Ale dzięki za link :)
@lukasz_: Migracje mam zrobione, po prostu gdy wykrzacza się schema:update, to nie uzupełnia mi innych tabelek w bazie, przez co wykrzaczają się
schema:updatezmienia strukturę bazki na podstawie definicji tabel/kolumn w konfiguracji Doctrine.Migracje to oddzielny mechanizm, który przy tym pozwala np zmigrować dane, a nie tylko strukturę.
Tak jak w przypadku kolegi – samo dostawienie kolumny nie wystarczy, potrzebne jest jeszcze uzupełnienie kolumny. Przy tym w dodatku dwuetapowo.
Jak masz jedno środowisko to możesz sobie takie rzeczy robić ręcznie, ale jak developerów jest kilku, środowiska testowe, produkcja => to migracje