【问题标题】:How do I adopt an orphaned table from another database for use in Views in drupal 7 data module?如何在 drupal 7 数据模块的视图中采用来自另一个数据库的孤立表?
【发布时间】:2014-01-14 06:27:57
【问题描述】:

我正在尝试从位于另一个名为“学院”的数据库中的自定义表中构建视图。我的 Drupal 安装使用数据库“drupal”。我更新了 Drupal 的 settings.php 文件:

$databases = array();

#DEFAULT DRUPAL DATABASE
$databases['default']['default'] =  array (
      'database' => 'drupal',
      'username' => 'root',
      'password' => '',
      'host' => 'localhost',
      'port' => '',
      'driver' => 'mysql',
      'prefix' => '',
);

#ACADEMY DATABASE


    $databases['academy']['default'] =  array (
          'database' => 'academy',
          'username' => 'root',
          'password' => '',
          'host' => 'localhost',
          'port' => '',
          'driver' => 'mysql',
          'prefix' => '',
    );  

并清除缓存。但是当我转到数据模块中的“采用表”时,我看不到“学院”数据库中的任何表。

我错过了一步吗?

【问题讨论】:

  • 您是否配置了 Schema 模块 (/admin/structure/schema/settings) 并将“要使用的数据库连接”设置为您的“学院”数据库?

标签: mysql drupal drupal-7 drupal-modules drupal-views


【解决方案1】:
$databases = array (
  'default' => 
  array (
    'default' => 
    array (
      'database' => 'abc',
      'username' => 'root',
      'password' => '',
      'host' => '127.0.0.1',
      'port' => '',
      'driver' => 'mysql',
      'prefix' => '',
    ),
  ),
  'xyz' => 
  array (
    'default' => 
    array (
      'database' => 'xyz',
      'username' => 'root',
      'password' => '',
      'host' => '127.0.0.1',
      'port' => '',
      'driver' => 'mysql',
      'prefix' => '',
    ),
  ),
);

我已经这样做了,它正在工作。如果您的其他数据库表名称是 不同,那么你可以直接调用它;否则,请使用您的 database_name.table 名称调用它。

【讨论】:

  • 这基本上创建了与我的代码相同的数组。不是我无法连接到我的数据库,而是我无法从中加载视图。我将不得不继续挖掘。也许有一个模块或补丁可以做到。
  • 您检查了您的第二个数据库是否已连接并返回任何数据?如果它已连接,只需在您的视图文件中检查您是否在 module-name_veiws_data() 函数中返回 $data。
猜你喜欢
  • 1970-01-01
  • 2015-09-18
  • 1970-01-01
  • 1970-01-01
  • 2015-12-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多