Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [symfony] Propel generuje kod, który nie działa w PostgreSQL
Forum PHP.pl > Forum > PHP > Frameworki
Ziels
Witam,

Mam pliczek w fixtures, kiedy próbuję go załadować do bazy otrzymuję komunikat:
  1. <?php
  2. ziell@greyworld:~/trunk$ php symfony propel-load-data frontend
  3. >> propel load data from "/path/trunk/data/fixtures"
  4. [PropelException]
  5. Unable to perform DELETE ALL operation. [wrapped: Could not execute update [Native Error: ERROR: syntax error at or near "user"
  6. LINE 1: DELETE FROM user
  7. ^] [User Info: DELETE FROM user]]
  8. ?>


Zapytanie powinno wyglądać tak: DELETE FROM "user" jednak propel nie dodaje cudzysłowiów. Co można na to poradzić? Przy propel-build-sql i propel-insert-sql wszystko przechodzi bez problemów. Błąd pojawia się niezależnie od tego, jaką wartość nadam opcji propel.disableIdentifierQuoting
pawel_k
problem w nazwie tabeli - nie możesz używać nazwy "user" bo to nazwa zastrzeżona przez postgresa (chyba trzymane tam są dane użytkowników z uprawnieniami do danej bazy danych albo coś podobnego)

musisz niestety iść na kompromis - zrób na przykład nazwę tabeli "users", a jeśli koniecznie chcesz używać obiektu User a nie Users to zrób coś takiego w schema.xml:
  1. <table name="users" phpName="User">
  2.    <!-- definicje kolumn itd -->
  3. </table>

oczywiście musisz wszelkie relacje kierować do nazwy tabeli,
czyli zamiast
<foreign-key foreignTable="user">
robisz
<foreign-key foreignTable="users">
Ziels
Racja, dzięki smile.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.