$di->set ( 'db', function () {
        return new \Phalcon\Db\Adapter\Pdo\Postgresql ( array (
                "host" => "localhost",
                "username" => "admin",
                "password" => "a",
                "dbname" => "test",
                "schema" => "holap2",
    } );

But phalcon is reading meta data from wrong schema

2014-03-14 11:06:33 CET LOG:  execute pdo_stmt_00000001: SELECT CASE WHEN COUNT(*) > 0 THEN 1 ELSE 0 END FROM information_schema.tables WHERE table_schema = 'public' AND table_name='products'
2014-03-14 11:06:33 CET LOG:  statement: DEALLOCATE pdo_stmt_00000001
2014-03-14 11:06:33 CET LOG:  execute pdo_stmt_00000002: SELECT DISTINCT c.column_name AS Field, c.data_type AS Type, c.character_maximum_length AS Size, c.numeric_precision AS NumericSize, c.numeric_scale AS NumericScale, c.is_nullable AS Null, CASE WHEN pkc.column_name NOTNULL THEN 'PRI' ELSE '' END AS Key, CASE WHEN c.data_type LIKE '%int%' AND c.column_default LIKE '%nextval%' THEN 'auto_increment' ELSE '' END AS Extra, c.ordinal_position AS Position FROM information_schema.columns c LEFT JOIN ( SELECT kcu.column_name, kcu.table_name, kcu.table_schema FROM information_schema.table_constraints tc INNER JOIN information_schema.key_column_usage kcu on (kcu.constraint_name = tc.constraint_name and kcu.table_name=tc.table_name and kcu.table_schema=tc.table_schema) WHERE tc.constraint_type='PRIMARY KEY') pkc ON (c.column_name=pkc.column_name AND c.table_schema = pkc.table_schema AND c.table_name=pkc.table_name) WHERE c.table_schema='public' AND c.table_name='products' ORDER BY c.ordinal_position
2014-03-14 11:06:33 CET LOG:  statement: DEALLOCATE pdo_stmt_00000002

I deleted 'pubic' schema and phalcon can't discover tables schema ....

My solution is

class MyModel extends \Phalcon\Mvc\Model {
    public function getSchema(){
        return "holap2";

class Product extends MyModel

So I think that is a bug ...

Phalcon used: phalconx86VC9php5.

P.S. English is my 2ng language ... So be nice to me xD