【问题标题】:postgresql autodocpostgresql 自动文档
【发布时间】:2012-11-08 23:29:00
【问题描述】:

我想为我在 Postgresql 中创建的空间数据库生成一个 ER 图。由于我也是 Postgresql 的新手,我不太确定图表功能是否可以使用 PgAdmin 提供的功能来完成(不是指图形查询生成器)。但是,在我看来,没有。我读到有一个名为 postgresql_autodoc 的基于 perl 的工具,它可以通过 PostgreSQL 系统表运行并返回描述数据库的 HTML、Dot、Dia 和 DocBook XML。现在这不是我想要的,但它是我最接近的选择。所以我已经成功安装了 ActivePerl 5.8 和 DBD-Pg 2.10.0 for Perl 5.8(DBD PG 是 PostgreSQL 数据库的 Perl DBI 驱动程序),我还下载了 postgresql_autodoc.pl 文件。我还添加了 Perl 的路径。但是当我尝试通过命令提示符运行 postgresql_autodoc.pl 时,我收到了这个错误:Possible Unintended Interpolation of @TEMPLATE in string at C:/Perl/bin/postgresql_autodoc.pl line 1831. Global symbol "@ TEMPLATE" 需要在 C:/Perl/bin/postgresql_autodoc.pl 第 1831 行显示包名称。由于编译错误,C:/Perl/bin/postgresql_autodoc.pl 的执行被中止。

我尝试使用 notepad++ 查看 postgresql_autodoc.pl,但是我没有使用 perl 语言的经验,所以我无法弄清楚真正的问题是什么。我所能做的就是找到第 1831 行,但我不知道我应该怎么做才能解决这个问题。

postgresql_autodoc.pl 文件下载自:http://www.rbt.ca/autodoc/

如果有人可以在这里帮助我,我将不胜感激!

提前致谢

芭芭拉

【问题讨论】:

  • 您应该显示导致此错误的相关代码。
  • 我个人使用 SchemaSpy (schemaspy.sourceforge.net)。它非常易于使用,而且效果很好。
  • @TLP - 代码太长,这就是为什么我指定了我从中获取它的站点。
  • @Craig - 我现在正在试用 SchemaSpy。谢谢!

标签: perl postgresql dbi dbd er-diagrams


【解决方案1】:

那个东西,@@TEMPLATE-DIR@@,是一个字符串,在你构建和安装模块时会被替换——这意味着你不应该直接从解压缩的存档中运行它。

大多数 Perl 模块都通过或多或少简单的三步安装过程进行安装,例如 perl Makefile.PL ; make ; make install。不过这个包有点不同,你好像只需要make install

请注意,我没有使用 ActiveState 在 Windows 上安装 Perl 模块的经验。所以上述可能不起作用(例如,如果没有 make 实用程序,它通常不是 Perl 的一部分——尽管它可能是 ActiveState Perl 发行版的一部分)。

但是有一个解决方法。您可以简单地执行安装脚本的操作并自己替换 @@TEMPLATE-DIR@@ 字符串。可以使用任何文本编辑器轻松完成此操作,方法是将两次出现的 @@TEMPLATE-DIR@@ 替换为 postgresql_autodoc.pl 脚本已解压缩到的路径——这意味着脚本将在其中查找 *.tmpl 文件的路径。

请注意,Windows 路径名可以用 Perl 中的正斜杠编写,这意味着 C:/Temp/postgresql_autodoc 应该没问题。

【讨论】:

  • 非常感谢莫里茨的回复。我按照你的建议做了,当我运行 postgresql_autodoc.pl 时,我收到一条新的错误消息:无法在动态链接库 perl58.dll 中找到过程入口点 Per_sv_2iv_flags。此错误消息显示为弹出窗口。然而,命令提示符上的错误消息显示:Cant locate PAR/Dist.pm in @INC(@INC contains C:/Perl/lib C:/Perl/site/lib.)。这个也有亮点吗?
  • 老实说,我对此一无所知。也许你有不止一个 perl58.dll 的实例,或者你已经安装了一些 Perl 模块,这些模块是用不同版本的 Perl 编译的。如何解决这一切?不知道。您可以做的一件事是在虚拟机中安装 Linux(virtualbox.org 是一个免费的虚拟机)并尝试让脚本在其中安装和运行。 Perl 支持在大多数(所有?)Linux 发行版中都是一流的,并且在其中运行脚本可能比在 Windows 上容易得多。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-09-30
  • 2015-06-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-03-16
  • 2018-12-08
相关资源
最近更新 更多