Questions tagged «database»

Drupal提供了一个标准的,与供应商无关的抽象层,用于访问数据库服务器。


4
寻找数据库插入示例
根据db_insert手册页,此功能已被弃用,最好使用Drupal 8数据库连接来执行插入。 不推荐使用 从Drupal 8.0.x开始,将在Drupal 9.0.0中删除。而是从容器中将数据库连接注入到服务中,然后在其上调用insert()。例如,$ injected_database-> insert($ table,$ options); 现在如何获得数据库连接和调用insert()方法?
12 database  8 

1
将MongoDB用于字段存储是否会限制功能?
我正在考虑在站点上使用MongoDB进行字段存储,而不仅仅是将缓存,会话,批次等移出我的SQL数据库。 该字段存储API应该使这种无缝的,假设我使用Drupal的API访问数据。但是,这是否以任何方式限制了我的网站。我特别想知道“ 视图”将如何受到影响。
12 views  database 


2
Views3和子查询?
我有一个视图,该视图生成执行多个联接的查询。这将产生笛卡尔连接,而我需要将连接“转换”为子查询。 我浏览了文档,Google搜索结果和其他来源,但是找不到关于如何配置Views进行子查询的任何恰当的描述。我已经使用hook_views_data()来配置关系(现在作为连接执行)。是否可以通过hook_views_data()定义子查询,还是我需要采取另一种方法? 任何建议表示赞赏!
12 views  database 

4
如何指定应该在哪个数据库中创建我的架构?
在Drupal 7中使用多个数据库时,如何指定要在其他服务器上的其他数据库中创建表? 默认情况下,当您安装模块时,Drupal假定其中的所有内容hook_schema()都应安装在默认数据库中。有没有一种方法可以指定应在其他数据库上创建表,还是可以使用某种手动解决方法?
12 7  database 

2
获取现场汇总信息的最可持续方法是什么?
EntityFieldQuery不可用于对字段数据运行聚合函数(SUM,AVG等),因为它与SQL无关。也就是说,合法地需要不时地运行此类操作。根据具有EntityFieldQuery尤其是EntityFieldQuery的SQL函数以及如何使用聚合函数SUM,ARG和MAX,需要使用SQL查询,并且这种方法最适合我的用例。昨天我在与@chx交谈时,他建议使用几个内部函数来查找字段名称和列名称。我只是想知道这是否可持续,是否适合在我可能发布给其他人的代码库中进行。 如果这是最好的方法,那就是最好的方法。我绝对不敢做,因为它感觉很乱。
12 7  entities  database 


2
将索引添加到Drupal数据库是否安全?
我一直在搜索和阅读有关此内容的信息,但对于将索引添加到Drupal表(核心和贡献)的主题,我还没有看到任何明确的定义。 我主要担心的是,当您更新核心代码或贡献代码并且发生模式更改时,任何自定义索引会发生什么。在这种情况下会发生什么? 编辑: 我认为某些情况可能会有所帮助。我主要关心的是向表中添加索引以调整站点性能(查询显示在缓慢的查询日志中,显示缓慢的页面等)。这可能涉及向其他人的模块中的表添加索引。例如 我安装模块 foo 模块foo创建表 foo 我向表添加索引 foo 模块foo具有更改架构的更新 怎么了?
12 database 


3
vid是什么意思
我设计了一个视图,并在预览部分看到了此查询: SELECT node.nid AS nid, node_data_field_crm_history_brokerid.field_crm_history_brokerid_value AS node_data_field_crm_history_brokerid_field_crm_history_brokerid_value, node.language AS node_language, node.type AS node_type, node.vid AS node_vid, node_data_field_crm_history_brokerid.field_crm_history_caseid_value AS node_data_field_crm_history_brokerid_field_crm_history_caseid_value, node_data_field_crm_history_brokerid.field_crm_history_dateadded_value AS node_data_field_crm_history_brokerid_field_crm_history_dateadded_value, node_data_field_crm_history_brokerid.field_crm_history_entrydesc_value AS node_data_field_crm_history_brokerid_field_crm_history_entrydesc_value FROM node node LEFT JOIN content_type_crm_history node_data_field_crm_history_brokerid ON node.vid = node_data_field_crm_history_brokerid.vid WHERE node.type in ('crm_history') 这vid是什么意思? 实际上,我需要这样做,因为当我尝试使用以下查询尝试在crm_history中插入一条简单规则来插入一行时: $result = db_query("INSERT INTO {content_type_crm_history} (vid, nid, …
12 views  database 

2
如何在自定义模块中创建表
在Drupal 7中,我们曾经hook_schema()在.install文件中使用它来创建表。我相信,在Drupal 8中,您也可以做到这一点,但我的印象是您应该使用架构创建.yml文件。 在Drupal 8中创建表的方法是什么?
12 8  database 


2
hook_schema没有创建数据库表
以下功能作为名为process_login的自定义模块的一部分包含在process_login.install中。如果手动创建数据库表,该模块将起作用,但是自然地,我希望在安装时自动创建该表。 该函数本身在安装模块时不会生成架构错误。但是它也没有在Drupal 7 MySQL数据库中创建数据库表process_login_register。 我没有看到其他错误,也没有网站报告报告的问题。 我已将其完全删除并重新安装了无数次。我在网络上进行了广泛搜索,并查阅了两本有关Drupal开发的书。我看不到此功能有什么问题(下面列出)。 注意:我也尝试将'id'定义为序列,但是得到相同的结果(即未创建表)。 我的想法已经用完了。有人知道为什么这个功能不能正常工作吗? function process_login_schema(){ $schema['process_login_register'] = array( 'description' => 'Register a specific computer with the system.', 'fields' => array( 'id' => array( 'description' => 'Primary identifier.', 'type' => 'int', 'unsigned' => TRUE, 'size' => 'normal', 'not null' => TRUE, 'default' => 0, ), 'ip' …
12 7  database 

1
field_data和field_revision表之间的区别?
我有很多自定义功能;我只想确保自己做对了。 如果我想要节点的最新版本(实时版本),请转到field_data_field_xyz表格,对不对? 我的理解是field_revision_field_xyz保留所有旧版本,对吗?
11 7  database 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.