Я пытаюсь подключиться к моему серверу PostgresSQL с помощью SchemaSpy. Я установил Java с помощью oracle-java8-installer
из ppa:webupd8team/java.
(Мой сервер PostgreSQL работает с контейнером Docker, поэтому я отправляю порт на 5431)
Файл my schemaspy.properties
:
# type of database. Run with -dbhelp for details
schemaspy.t=pgsql
# optional path to alternative jdbc drivers.
# database properties: host, port number, name user, password
schemaspy.host=localhost:5431
schemaspy.port=5431
schemaspy.db=dbname
schemaspy.u=dbuser
schemaspy.p=dbpassword
# output dir to save generated files
schemaspy.o=dbschema
# db scheme for which generate diagrams
schemaspy.s=public
Когда я запускаю эту команду:
java -jar schemaspy-6.0.0.jar -configFile schemaspy.properties
Я уверен, что база данных доступна на lcoalhost: 5431. Однако я получаю:
user@hostname:~/path-to-app$ java -jar schemaspy-6.0.0.jar -configFile schemaspy.properties ____ _ ____ / ___| ___| |__ ___ _ __ ___ __ _/ ___| _ __ _ _ \___ \ / __| '_ \ / _ \ '_ ' _ \ / _' \___ \| '_ \| | | | ___) | (__| | | | __/ | | | | | (_| |___) | |_) | |_| | |____/ \___|_| |_|\___|_| |_| |_|\__,_|____/| .__/ \__, | |_| |___/ 6.0.0 SchemaSpy generates an HTML representation of a database schema relationships. SchemaSpy comes with ABSOLUTELY NO WARRANTY. SchemaSpy is free software and can be redistributed under the conditions of LGPL version 3 or later. http://www.gnu.org/licenses/ INFO - Starting Main v6.0.0 on hostname with PID 18555 (/home/user/path-to-app/schemaspy-6.0.0.jar started by user in /home/user/path-to-app) INFO - The following profiles are active: default INFO - Found configuration file: schemaspy.properties INFO - Started Main in 3.406 seconds (JVM running for 4.519) INFO - Starting schema analysis WARN - Connection Failure
Должен ли я добавить драйвер? Я пробовал с postgresql-42.2.4.jar
. Я загрузил его с сайта jdbc.postgresql.org и добавил эту строку в файл конфигурации.
schemaspy.dp=postgresql-42.2.4.jar
Однако он по-прежнему показывает ту же ошибку.
Хорошо, я наконец понял, в чем проблема. Эта строка schemaspy.dp=postgresql-42.2.4.jar
должна быть добавлена непосредственно после определения типа базы данных. Теперь мой файл schemaspy.properties
:
# type of database. Run with -dbhelp for details
schemaspy.t=pgsql
# optional path to alternative jdbc drivers.
schemaspy.dp=postgresql-42.2.4.jar
# database properties: host, port number, name user, password
schemaspy.host=localhost:5431
schemaspy.port=5431
schemaspy.db=dbname
schemaspy.u=dbuser
schemaspy.p=dbpassword
# output dir to save generated files
schemaspy.o=/home/user/dump
# db scheme for which generate diagrams
schemaspy.s=public
И работает правильно.
schemaspy.host=localhost:5431
наschemaspy.host=localhost