Aktywne Wpisy

ViniciusZunior +177
90% meetingów w korpo można by anulować i nic by się nie stało
#pracait #programista15k #programowanie #korposwiat
#pracait #programista15k #programowanie #korposwiat

Teuvo +20
proszę mi wytłumaczyć dlaczego ciepłe powietrze przyśpieszone przez wiatrak robi się chłodne





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