【问题标题】:How to publish data residing in an external database using Drupal? [closed]如何使用 Drupal 发布驻留在外部数据库中的数据? [关闭]
【发布时间】:2011-05-07 02:59:46
【问题描述】:

我对 Drupal 非常陌生,并且得到了一些关于视图的混合信息,所以我想看看是否有人可以让我走上正确的道路。

这是我的情况。我有一个单独的数据库(在同一个 Drupal 数据库服务器上),其中包含由另一个团队维护的大量数据。我们希望将这些数据发布到网络上,在得到一些建议后,看起来 Drupal 视图是可行的方法。

问题是,我不知道从那里去哪里。我阅读了文档并刚刚观看了 Lullabot 上的视图教程,但我的数据根本不在字段列中。

我阅读了一份文档,该文档说我必须向 Drupal “描述”我的外部数据库,但不知道该怎么做。我在 drupal.org(服务等)上找到了一些工具,它们说它们可以分析我的数据库并将结构报告回 Drupal,但我无法弄清楚。

基本上我想要的最终结果是两件事。首先是简单地将数据从我的外部数据库显示到 Drupal 节点上(唯一的问题是,每个页面都特定于数据库实体,因此虽然数据格式/显示是标准的,但数据本身会随着链接而变化,例如,www.example.com/ibm 应该只提供我们在 ibm 上的数据,并且随着公司名称的变化,所显示的数据也会发生变化),稍后我可能想在数据显示之前对其进行一些计算。

有人对如何执行此操作或任何教程有任何建议吗?

如果有帮助,我正在使用 Drupal 7。

附带说明,如果在 Drupal 中无法做到这一点,或者即使是,在 PHP 中创建它然后以某种方式将其包装在 Drupal 中会更好吗?我正在讨论这个问题,因为我认为我知道如何在 PHP 中做到这一点,它可能会让我对结果有更多的控制(但我有点懒,因为我在想也许 Drupal 可以为我做这件事:-)

更新:好的,现在我更加困惑了。我查看了视图,但仍然无法将其与我的数据库集成。我已经查看了模式和提要作为描述数据库或使用 Drupal 复制数据库的一种方式。我不确定我是否朝着正确的方向前进(或者正确的方向是什么),因为到目前为止,我所尝试的一切似乎都是死胡同。有人可以推荐一个教程吗?或者讲述他们完成这项工作的经历?我只是想将另一个数据库中的内容显示到页面上(当用户选择特定的股票代码时),我可能希望允许用户稍后对其进行自定义(这就是我认为需要视图的原因)。

【问题讨论】:

    标签: php drupal drupal-views drupal-7


    【解决方案1】:

    就连接到数据库而言,您可以在 settings.php 中添加额外的数据库连接,并在代码中使用 db_set_active('connection_name') 函数将您的活动数据库连接切换到该源。为视图构建插件 - 这是一个远远超出单一答案范围的大主题。我只能说谷歌,祝你好运,然后回来详细说明:)

    【讨论】:

    • 谢谢大卫。我试图大致了解如何解决这个问题。我已经看到你提到的 db 连接,我可以在 php 代码中连接到另一个数据库,然后切换回 drupal 数据库。但这是否意味着我应该只编写自定义代码?或者视图模块可以识别我的外部数据库并允许我显示我的内容吗?
    • @Lostsoul 抱歉,如果我不清楚。您需要编写一个视图插件以允许视图理解数据结构。您可以查看任何拥有自己的视图插件的 Drupal 模块作为示例,包括 Views 模块附带的插件。
    • 好的,谢谢大卫。我现在知道了。我将开始研究一些视图代码,看看我是否能理解他们是如何做到的。非常感谢,如果可以的话,我将保持问题开放,以防万一其他人有另一种方法。再次感谢大卫。
    【解决方案2】:

    模块Forena可用于查询(不更新)各种数据库,例如MySQL数据库,并建立与外部数据库的数据库连接。它带有各种钩子,可以在另一个模块中使用 Forena。

    有关 Forena 的更多详细信息,可以使用 2 种类型的文档:

    • Community documentation
    • Forena 附带的文档,您可以在安装和启用模块后立即访问。查看demo site 获取当前的在线示例:

      • Forena 文档 - 使用链接“报告文档”或访问相关链接 /reports/help。
      • Forena 示例 - 使用链接“报告示例”或访问相关链接 /reports/samples(这些示例功能齐全,因此请务必对其进行一些试验,例如SVG 图表示例)。

    最新的 7.x-4.x 版本还包括一个令人惊叹的(我认为)用户界面,用于创建您的报告(所见即所得的报告编辑器)和/或用于创建您的 SQL 查询(查询生成器)。

    以下是 mysql 数据库 部分的一些变体:

    1. 使用 SQLite 而不是 MySQL 数据库:Forena 示例实际上已包含一个(微型)SQLite 数据库。去demo site看看吧:里面显示的数据是sampledb中包含的数据,是SQLite格式的。
    2. Forena 附带一整套 Supported database connections ... 例如 MS SQL、Oracle、Postgress 或任何符合 PDO 的变体。

    考虑尝试 Forena 的理由是否充分?这样做时,将它的问题队列用于您可能有的任何类型的支持/文档​​请求。

    请注意:我是 Forena 的共同维护者。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-06-15
      • 1970-01-01
      • 1970-01-01
      • 2013-07-23
      • 2020-12-01
      • 1970-01-01
      相关资源
      最近更新 更多