![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 1 116 Pomógł: 119 Dołączył: 10.05.2005 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
Witam,
mój plik schema.yml wygląda tak: Kod propel: _attributes: { package: lib.model } users: _attributes: { phpName: User } id: login: varchar(50) password: varchar(32) user_type_id: { type: integer, primaryKey: true, required: true, foreignTable: user_types, foreignReference: id, onDelete: cascade } user_types: _attributes: { phpName: UserType } id: name: varchar(100) Oczywiście generuje on plik sql o takiej treści (używam sterownika do postgresa: pgsql)
gdy chcę załadować plik do bazy danych występuje taki błąd: Kod NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index "users_pkey" for table "users" ERROR: relation "user_types" does not exist Oczywiście błąd rozumiem, wszystko wróciłoby do normy gdybym deklaracje tych dwóch powyższych tabel zamienił miejscami. Jednak mam pytanie. Czy istnieje jakiś przełącznik, lub jakiś inny sposób aby plik sql, tworzący schemat bazy danych zawierał na początku pliku deklaracje tabel a na samym końcu wszelkie ADD CONSTRAINT? Chodzi o to, że stworzyłem dość spory plik schema.yml i nie wiem co zrobić, aby poprawnie załadować plik sql do bazy danych. (Oczywiście chodzi mi o rozwiązania inne niż zmiana kolejności deklaracji tabel) Pozdrawiam |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 50 Pomógł: 1 Dołączył: 14.07.2004 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Ehh - łapy opadają jak Ciebie słyszę. Ale odpiszę:
Cytat W moim mniemaniu tabela użytkowników jest zbiorem użytkowników a nie zbiorem użytkownika, więc naturalne dla mnie jest używanie liczby mnogiej dla nazw encji. Piszesz bez sensu. Encja zawsze jest jakimś zbiorem (z samej definicji). Jakbyś trochę poczytał dokumentację, to byś wiedział że jakbyś zrobił: Kod <span class="postcolor">propel: user: _attributes: { phpName: User } id: login: varchar(50) password: varchar(32) user_type_id: user_type: _attributes: { phpName: UserType } id: name: varchar(100)</span> to generowane klasy by się automatycznie połączyły (bez wsadzania foreignTable w schema.yml). Cytat Lecz aby zbudować poprawny plik SQL musiałbym cały plik schema.yml przepisać (a dokładniej pozamieniać miejscami deklaracje tabel) czego chcę uniknąć. Proponuję diagram encji sobie robić i wrzucić jaki JPGa na przykład. Choć podejrzewam że uważasz to za zbędny trud, tak samo jak budowanie encji w liczbie pojedyńczej - które wymyśliło sporo mądrzejszych programistów, przed Tobą. Cytat Poza tym zadałem podobne pytanie na forum symfony. Odpowiedział mi pewien Niemiec, że się tego nie da zrobić, więc chyba pozostanie mi przepisanie pliku schema.yml Następnym razem powiedź, żebym podpisywał się jako Niemiec, żebyś uwierzył (IMG:http://forum.php.pl/style_emoticons/default/blinksmiley.gif) . |
|
|
![]() ![]() |
![]() |
Aktualny czas: 4.10.2025 - 19:06 |