🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.php
Article #232370

Migracje w Symfony 4 - jak je budować automatycznie?

#232370
From: Marek S
Date: Mon, 15 Apr 2019 22:31
38 lines
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-mail

Show 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