首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用Drush对远程服务器上的数据库进行消毒?

如何使用Drush对远程服务器上的数据库进行消毒?
EN

Drupal用户
提问于 2016-02-20 08:09:25
回答 4查看 871关注 0票数 1

我在Pantheon上,我想运行一些自定义SQL查询来清理我的dev服务器。

我在一个文件中有查询,custom_sanitize.sqlqueries

看起来是这样的:

代码语言:javascript
复制
UPDATE user__field_useragent SET field_useragent_value = 'Sputnik';
UPDATE node__field_useragent SET field_useragent_value = 'Sputnik';
UPDATE node_revision__field_useragent SET field_useragent_value = 'Sputnik';

TRUNCATE TABLE watchdog;

目标

我想用一个Drush命令在远程服务器上运行这些查询。

我当前的解决方案

我用续集专业版连接到数据库,剪切并粘贴查询并运行它们。

我试过什么

基于Drush 8 sql-查询文档,我试图像这样执行我的文件:

代码语言:javascript
复制
drush @alias.dev sql-query --file=custom_sanitize.sqlqueries

这是失败的:

代码语言:javascript
复制
failed to open stream: No     [warning]
such file or directory drush.inc:904

我认为这是因为我的本地drush调用服务器上的远程drush,并且文件路径是不同的。

因此,我尝试以这样的方式输入文件的内容:

代码语言:javascript
复制
`drush @alias.dev sql-connect` < custom_sanitize.sqlqueries

这在以下消息中失败:

代码语言:javascript
复制
-bash: PTY: command not found

于是,我尝试在命令行输入查询:

代码语言:javascript
复制
drush @alias.dev sql-query "UPDATE node_revision__field_useragent SET field_useragent_value = 'Sputnik';TRUNCATE TABLE watchdog;"

这也失败了:

代码语言:javascript
复制
PTY allocation request failed on channel 0
Command not supported as typed.

我也试过使用hook_drush_sql_sync_sanitize(),但我无法让万神殿上的钻洞把我的钩子拿起来。

EN

回答 4

Drupal用户

回答已采纳

发布于 2017-05-27 13:43:35

Pantheon的终端可以跳过钻孔,并将SQL直接输送到"mysql连接命令“中。

代码语言:javascript
复制
echo 'UPDATE users SET pass="12345"' | `terminus connection:info mysite.dev --field=mysql_command`

((来源)

票数 2
EN

Drupal用户

发布于 2016-02-20 10:49:58

为此,可以使用sql-cli命令:

drush @alias.dev sql-cli < custom_sanitize.sql

票数 2
EN

Drupal用户

发布于 2016-02-20 15:28:21

您可以使用数据库_消毒速效实例,每次将数据库拖到开发环境中时都会自动进行消毒。

如果这不适用于你,打开一张与万神殿的票,我将在星期一看(如果其他人没有帮助你更早)。

票数 1
EN
页面原文内容由Drupal提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://drupal.stackexchange.com/questions/192093

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档