Database/SQL

数据库与SQL语句

基于Drush的批处理的延伸思考

0
Vote up!

批处理有很多种实施方案,到了Drupal,借助Drush,我们就有了更DrupalWay的方法,本文探讨的是如何让批处理的效率大幅提升。

本文是在本站之前两篇文章基础上的续篇,背景知识请移步:

Drupal数据库重连API函数

0
Vote up!

我们在写批处理程序时经常会遇到程序卡住的情况,而卡住又往往导致接下来的操作因为MYSQL的超时而失败,典型的报错信息就是:MySQL server has gone away。在实际工作中写出了如下代码,简单的解决了这个问题,需要确保链接仍然有效的时候,可以使用。

用Drush导出数据库

0
Vote up!

用Drush导出数据库的好处是因为Drush可以读取到当前链接的数据库,所以导出时不需要输入用户名,密码。有多种导出方式,可以根据需要选择。

Drush导数据时屏蔽一些表

0
Vote up!

用Drupal来导SQL文件很方便,借用管道符,可以屏蔽一些不需要入库的数据,从而提高导数据的效率。

测试服务器使用生产服务器数据的方法

0
Vote up!

各种需求总是千奇百怪的,我这次遇到的需求是希望在测试服务器的某些关键功能上使用远程(不在同一台服务器)生产服务器数据库的数据,遇到这种情况你会怎么做呢,其实Drupal是支持这种的,需要使用db_set_active的方式来切换数据库,同时在settings.php里要定义多个数据库连接。

根据SQL导出CSV或XLS

0
Vote up!

各部门的哥哥姐姐们总是需要各种数据,而且需求总变,做数据导出后台是做不过来的,所以积攒下来很多SQL作为模块,改来改去适应各种要数据的情况。

但偶尔有些数据特别常用,还是需要后台可以很方便的导出,这时候手里有的是一个SQL,怎么才能做后台来完成数据导出成CSV并下载呢,显然这里Views data export模块已经不再试用。

给Drupal已上线模块添加新表

1
Vote up!

对于这个问题,非Drupal-Way的方法就是在各个环境执行建表语句,好一些的则是把建表的SQL写到hook_update_N()里。但这还远远不够,为了让drupal_write_record正常工作,我们需要在hook_schema()里也写好表的结构定义数组(这个可以用schema模块自动输出)。

Drupal批量处理数据的脚本

0
Vote up!

当我们做批处理的时候,可能会有各种个样的方式,比如使用Drupal的Batch API,比如自己写个php脚本,循环处理,比如写个drush命令,比如利用Jenkins循环调用自身的方式,可以利用多线程技术,甚至是换一个思路用其他语言比如Node.js来做批处理。

我这里当然不会介绍这么多,只是说一下我遇到的一个场景的解决方法。

场景描述: