Я следующий тип в Postgres 9.2:psycopg2 типы перечислений
CREATE TYPE profile_categories AS ENUM
(
'particulier',
'professionel',
'assureur',
'manager'
);
Так что я хочу, чтобы зарегистрировать его:
psycopg2.extras.register_composite('profile_categories', conn, globally=True)
но тогда я получил ошибку:
psycopg2.ProgrammingError: PostgreSQL type 'profile_categories' not found
Все мои ENUM TYPE не смогли зарегистрироваться надлежащим образом в то время как другие типы регистрируют мелкие, такие как:
CREATE TYPE _result AS
(
id TEXT,
msg TEXT
);
Как зарегистрировать типы ENUM?
Это верно, пока вы не используете массив над перечислением. В этом случае psycopg2 возвращает массив как строковый литерал вместо списка строк. В этом случае необходимо использовать персонализированный тип: http://initd.org/psycopg/docs/extensions.html#database-types-casting-functions – JoshuaBoshi