Article View: pl.comp.lang.php
Article #232370Migracje w Symfony 4 - jak je budować automatycznie?
From: Marek S
Date: Mon, 15 Apr 2019 22:31
Date: Mon, 15 Apr 2019 22:31
38 lines
2427 bytes
2427 bytes
Witam,
Czy w ogóle da się to wykonać? Jechałem w/g tutoriala: założyłem encję
users z polem "name" typu string 255 not null + repository. Bazą jest
PostgreSQL 10. Patrzę jaki z tego SQL powstał i jak to działa - ręce
załamuję.
$this->addSql('CREATE SEQUENCE users_id_seq INCREMENT BY 1 MINVALUE 1
START 1');
$this->addSql('CREATE TABLE users (id INT NOT NULL, name VARCHAR(255)
NOT NULL, PRIMARY KEY(id))');
Oto moje wątpliwości:
- Automatycznie powstało pole ID. Symfony założyło, że ja chcę mieć je
4-ro bajtowe. Tymczasem ja wiem, że chcę 8-bajtowe. Czy ręcznie muszę to
poprawić w migracji?
- Kolejna rzecz to pop... struktura pola ID. Powinno być BIGSERIAL
PRIMARY KEY. Tymczasem w zamian dostaję wykreowanie niepotrzebnej
sekwencji, stworzenie ID 4-ro bajtowego. Przy tworzeniu rekordu
wywoływane są 2 SQLe: nextval z sekwencji, a potem użycie tej wartości
w insert do tabeli users. Po co mi to? Powinien być 1 SQL w postaci
wstawienia nowego "name" użytkownika. ID powinien sam się wygenerować
korzystając z funkcjonalności bazy (niejawne sekwencje przypisywane do ID).
Czy da się takie podstawy tworzenia i korzystania z baz danych
zaimplementować do tworzenia migracji?
Owszem, mogę ręcznie zapodać w migracji SQLe ale obawiam się, że np.
INSERTy ORM będą próbowały pobierać ID z nieistniejących i
niepotrzebnych sekwencji. Zapewne da się jakoś skonfigurować gdzieś by
IDki nie wymagały dodatkowych odczytów i zaufały bazie?
--
Pozdrawiam,
Marek
Technical Details
Message-ID:
<q930nv$c5i$1@node2.news.atman.pl>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed2.atman.pl!newsfeed.atman.pl!.POSTED!not-for-mailShow Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed2.atman.pl!newsfeed.atman.pl!.POSTED!not-for-mail From: Marek S <precz@spamowi.com> Newsgroups: pl.comp.lang.php Subject: Migracje w Symfony 4 - jak je budować automatycznie? Date: Tue, 16 Apr 2019 00:31:25 +0200 Organization: ATMAN - ATM S.A. Lines: 38 Message-ID: <q930nv$c5i$1@node2.news.atman.pl> NNTP-Posting-Host: 89-70-94-204.dynamic.chello.pl Mime-Version: 1.0 X-Trace: node2.news.atman.pl 1555367487 12466 89.70.94.204 (15 Apr 2019 22:31:27 GMT) X-Complaints-To: usenet@atman.pl NNTP-Posting-Date: Mon, 15 Apr 2019 22:31:27 +0000 (UTC) User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:60.0) Gecko/20100101 Thunderbird/60.6.1 X-Mozilla-News-Host: news://news.atman.pl:119 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit