Не удалось создать график в PostgreSQL с использованием расширения «возраст», несмотря на выполнение всех шагов

Я пытаюсь создать график в PostgreSQL, используя расширение «возраст», но столкнулся с проблемой. Может ли кто-нибудь помочь мне в решении этой проблемы?

Я искал в каталоге, но все еще не могу найти решение

      select * from pg_proc where proname like 'create_%';.

.Убедитесь, что расширение «age» правильно установлено в вашей базе данных PostgreSQL. Вы можете проверить, установлен ли он, выполнив команду \dx в интерфейсе командной строки psql. Если в выводе указано «возраст», значит, он установлен. 2. Проверьте версию PostgreSQL, которую вы используете, и убедитесь, что она совместима с версией установленного вами расширения «age». 3. Просмотрите документацию по расширению age и функции create_graph(), чтобы убедиться, что вы используете правильный синтаксис и параметры. 4. Убедитесь, что у вас есть необходимые разрешения для создания графа в вашей базе данных. ПРЕДОСТАВЬТЕ вашей роли разрешение на выполнение этой функции. Я перепробовал все эти шаги, но не смог решить проблему.

6 ответов

Я надеюсь, что вы создали расширение AGE и загрузили его, используя:

      CREATE EXTENSION age; 
Load 'age';

Возможно, вы не указали путь поиска, задайте его с помощью следующей команды:

      SET search_path = ag_catalog, "$user", public;

Теперь создайте простой график:

      SELECT create_graph('demo_graph');

Ответ Мухаммада Захида совершенно правильный. Но вы также можете изменить файл в каталоге вашей базы данных, чтобы он загружал возраст и автоматически устанавливал путь поиска.

Вот как это сделать:

  1. Перейдите в каталог вашей базы данных и откройтеpostgresql.confфайл с вимом:

  1. Изменитьsearch_pathиshared_preload_librariesкак на изображении ниже: (вы можете найти эти строки, набрав «/», а затем передав строку, которую вы ищете)

  1. Сохраните и выйдите с:wqкоманда.

Теперь вам не нужно делатьLOAD 'age';иSET search_path = ag_catalog, "$user", public;каждый раз, когда вы запускаете postgres.

Во-первых, вам необходимо проверить установку расширения AGE с помощью этой команды:

      SELECT * FROM pg_extension WHERE extname = 'age';

После проверки установки проверьте доступность функции create_graph() с помощью этой команды:

      SELECT * FROM pg_proc WHERE proname = 'create_graph';

После проверки вы можете создать график в новой базе данных для устранения ошибки.

Вот несколько шагов, которые могут решить вашу проблему.

  • Убедитесь, что вы установили совместимую версию.
  • Убедитесь, что у вас есть разрешение на создание графика.
  • Убедитесь, что вы установили путь поиска , если не задали его с помощью этой команды:SET search_path = ag_catalog, "$user", public;

Могут возникнуть проблемы с установкой. Сначала удалите расширение возраста, используя

      DROP EXTENSION age CASCADE;

Переустановите Apache Age. И в терминале psql выполните эту команду.

      CREATE EXTENSION age; LOAD 'age'; 
SET search_path = ag_catalog, "$user", public;

Теперь создадим график

      SELECT * FROM ag_catalog.create_graph('graph');

Вы установили search_path после загрузки расширения? Как в

      SET search_path = ag_catalog, "$user", public;

Чтобы подтвердитьageрасширение было загружено, вы можете проверить, присутствует ли ag_catalog в схемах текущей базы данных. Вы можете перечислить схемы в текущей базе данных, если она имеется.

      SELECT schema_name FROM information_schema.schemata;

Вы также можете игнорировать загрузку search_path, как показано ранее, но обязательно добавьтеag_catalogпрефикс к любым объектам возраста, например, для использованияcreate_graphфункция. Используйте следующее

      SELECT * FROM ag_catalog.create_graph('test_graph');

Вы также можете прочитать эту статью, чтобы получить пошаговое руководство по использованию и загрузке функций возраста https://dev.to/shadycj/apache-age-getting-started-part-4age-query-formats-gd5

Другие вопросы по тегам