我使用node.js和sequelize库来创建数据库。数据库是Postgresql。 使用PostgreSQL 9.4.5在服务器上运行。使用PostgreSQL 9.5.2在服务器上运行它不会。
我试图调试,我看到该节点挂起一段时间,然后在最后得到一个TIMEOUT:
Unhandled rejection SequelizeConnectionError: connect ETIMEDOUT
它想做什么? 它必须创建几个表。大约有20张桌子。 它创建了前3个表。每次创建表时,由于某种原因,sequelize运行此语句:
SELECT i.relname AS name, ix.indisprimary AS primary, ix.indisunique AS unique, ix.indkey AS indkey, array_agg(a.attnum) as column_indexes, array_agg(a.attname) AS column_names, pg_get_indexdef(ix.indexrelid) AS definition FROM pg_class t, pg_class i, pg_index ix, pg_attribute a WHERE t.oid = ix.indrelid AND i.oid = ix.indexrelid AND a.attrelid = t.oid AND t.relkind = 'r' and t.relname = 'Tablename' GROUP BY i.relname, ix.indexrelid, ix.indisprimary, ix.indisunique, ix.indkey ORDER BY i.relname;
总是,在创建了thirth表之后,一切都会挂起,直到我得到一个TIMEOUT。
如果我登录到安装了数据库的服务器并运行相同的语句,则没有问题。查询返回一行:
我应该在哪里看?在postgres-log中也找不到任何东西。我真的不知道。