Не удалось создать график в 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');
Ответ Мухаммада Захида совершенно правильный. Но вы также можете изменить файл в каталоге вашей базы данных, чтобы он загружал возраст и автоматически устанавливал путь поиска.
Вот как это сделать:
- Перейдите в каталог вашей базы данных и откройте
postgresql.conf
файл с вимом:
- Изменить
search_path
иshared_preload_libraries
как на изображении ниже: (вы можете найти эти строки, набрав «/», а затем передав строку, которую вы ищете)
- Сохраните и выйдите с
: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