【发布时间】:2010-12-18 16:43:57
【问题描述】:
当我使用我的 PostgreSQL 数据库运行 doctrine:build-schema 时,发生了一件奇怪的事情。当然,它应该可以正常工作,但我却得到了这个:
jason@ve:~/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"
知道为什么会这样吗?
糟糕的是,即使我可以修复 SQL 查询,真正的问题是 symfony/Doctrine 没有按预期工作。 Doctrine 声称支持 PostgreSQL 似乎其他人在使用带有 build-schema 的 PostgreSQL 时没有问题,所以这很奇怪。
我正在使用 symfony 1.4.8 和 Doctrine 1.2。
【问题讨论】:
-
这看起来像一个错误,为什么不报告呢?另外,我猜您是从 schema.yml 文件构建的。尝试删除它的一半,然后重新构建,如果仍然出现错误,请尝试删除剩余的一半类定义,依此类推,直到您知道哪个特定定义导致错误。另外,您是否尝试过切换到另一个 DBMS 以查看仅在 PostgreSQL 中出现的情况?
-
这通常是一个很好的建议,但我不是从 schema.yml 文件构建的。我正在从数据库构建 schema.yml 文件。关于 DBMS,是的。多年来,我一直在使用 symfony 和 MySQL,没有出现任何问题。
标签: postgresql symfony1 doctrine