2010-12-18 6 views
1

Ich habe eine seltsame Sache passieren, wenn ich doctrine:build-schema mit meiner PostgreSQL-Datenbank ausführen. Es sollte einfach funktionieren, natürlich, sondern das ich erhalte:Symfony mag PostgreSQL nicht mit Doktrin: Build-Schema

[email protected]:~/salon$ ./symfony doctrine:build-schema 
>> doctrine generating yaml schema from database 


    SQLSTATE[42P01]: Undefined table: 7 ERROR: missing FROM-clause entry for table "t"            
    LINE 6: ...             t.typtype ...               
                   ^. Failing Query: " 
SELECT            
ordinal_position as attnum,             
column_name as field,               
udt_name as type,                
data_type as complete_type,             
t.typtype AS typtype,               
is_nullable as isnotnull,              
column_default as default,             
(                   
    SELECT 't'                 
    FROM pg_index, pg_attribute a, pg_class c, pg_type t      
    WHERE c.relname = table_name AND a.attname = column_name     
    AND a.attnum > 0 AND a.attrelid = c.oid AND a.atttypid = t.oid   
    AND c.oid = pg_index.indrelid AND a.attnum = ANY (pg_index.indkey)  
    AND pg_index.indisprimary = 't'           
    AND format_type(a.atttypid, a.atttypmod) NOT LIKE 'information_schema%' 
) as pri,                  
character_maximum_length as length           
FROM information_schema.COLUMNS             
WHERE table_name = 'salon'              
ORDER BY ordinal_position"   

Jede Idee, warum dies geschieht?

Der beschissene Teil ist, dass selbst wenn ich die SQL-Abfrage beheben kann, das eigentliche Problem ist, dass symfony/Doctrine nicht wie erwartet funktioniert. Doctrine behauptet, PostgreSQL zu unterstützen, es scheint, dass andere Leute PostgreSQL mit build-schema ohne Probleme verwenden, also das ist seltsam.

Ich bin auf Symfony 1.4.8 und Doctrine 1.2.

+2

Dieses wie ein Fehler aussieht, also warum melden Sie es nicht? Ich denke auch, dass Sie aus einer schema.yml-Datei erstellen. Versuchen Sie, die Hälfte davon zu löschen, und bauen Sie sie dann neu auf. Wenn Sie immer noch den Fehler erhalten, versuchen Sie, die Hälfte der verbleibenden Klassendefinitionen zu löschen, und so weiter, bis Sie wissen, welche bestimmte Definition den Fehler verursacht. Haben Sie auch versucht, zu einem anderen DBMS zu wechseln, um zu sehen, dass dies nur mit PostgreSQL geschieht? – greg0ire

+1

Das wäre normalerweise ein guter Vorschlag, aber ich baue nicht aus der schema.yml-Datei. Ich erstelle die schema.yml-Datei von der Datenbank. Über das DBMS, ja. Ich verwende Symfony mit MySQL seit Jahren ohne Probleme. –

Antwort

2

Die Klausel t.typtype macht dort keinen Sinn. Die Abfrage ist in dieser Hinsicht unterbrochen. Sie sollten dies den Autoren melden.

Verwandte Themen