![]() |
![]() |
![]()
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: 1 116 Pomógł: 119 Dołączył: 10.05.2005 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
Ehh - łapy opadają jak Ciebie słyszę. Ale odpiszę: Nie chcesz nie odpisuj, tym bardziej, że nawet nie podajesz rozwiązania tylko pokazujesz, że da się zrobić to samo innym sposobem, co NIE ZAŁATWIA PROBLEMU! Piszesz bez sensu. Encja zawsze jest jakimś zbiorem (z samej definicji). Skoro encja jest zbiorem danych, to dlaczego nie mogę jej nazwać liczbą mnogą. W samej aplikacji będzie to liczba pojedyncza, ponieważ do tego twórcy symfony wymyślili coś takiego jak phpName (o czym już we wcześniejszym poście wspomniałem) 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). ... i co? podałeś mi inne rozwiązanie, które różni się od mojego tym, że ja deklaruje jawnie węzły integralności, a w Twoim przypadku robi to automat. Ja wolę jawnie deklarować węzły... i co? Powiesz mi, że to jest `nie kul`, bo tak nie było w `askeecie`? Fakt jest taki, że nie pomyślałem o tym aby węzły integralności rozwiązywać w ten sposób co Ty, ale to nie oznacza, że dodanie foreignTable jest czymś złym albo wręcz `przeciw sztuce`. Mało tego, ja jeszcze w atrybutach kolumn deklaruję często nazwy sekwencji (jak wspomniałem używam postgresa), żeby potem się połapać. Pomyśl, że skoro w `askeet` pokazali, że można wykorzystać automaty nie oznacza, że trzeba z nich korzystać! Na przykład nie sprawdzą się jak w nazwie encji będę używał wspomnianej liczby mnogiej lub chociażby jakiś prefiks w nazwie tabeli (tak wiem, pewnie zapytasz dlaczego stosować prefiksy w nazwach encji). Proponuję diagram encji sobie robić i wrzucić jaki JPGa na przykład. Choć podejrzewam że uważasz to za zbędny trud, (...) hmm... a tu a co autorowi chodzi to nie mam pojęcia. Może chodzi Ci o graficzny projekt bazy... jeśli pytasz to: tak, używałem! Następnym razem powiedź, żebym podpisywał się jako Niemiec, żebyś uwierzył (IMG:http://forum.php.pl/style_emoticons/default/blinksmiley.gif) . Żałosne zakończenie żałosnego posta Przepraszam wszystkich za ten offtopic, ale aż ciężko nie odpowiedzieć na takie głupkowate zarzuty. Dlatego ponawiam pytanie. Cytat 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?
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 4.10.2025 - 16:00 |