我很擅长匆忙。我们有一个drupal站点的git repo,我想用drush推送到远程服务器。我可以轻松scp drupal文件或在运行git pull的遥控器上设置一个cron但我仍然想学习如何推送代码并将远程drupal站点与我当地的drupal同步。
目前,我在本地运行了drupal,我使用git更新了repo。 ssh已经配置好了,我可以使用密钥ssh到远程drupal服务器。我还创建了.drush / aliases.drushrc.php文件,并通过运行drush @dev状态对其进行了测试。它运作良好
<?php
$aliases['dev'] = array(
'root' => '/var/www/html',
'uri' => 'dev.example.com',
'remote-host' => '192.168.1.50'
);
?>
现在,我希望我的本地drupal站点与192.168.1.50服务器上的服务器同步。本地drupal文件在我的/ home / ubuntu / drupal_site上。
我几乎没有问题:
更新远程drupal服务器的drush命令/参数是什么?
如果远程服务器还没有drupal文件,那么drush命令/参数会是什么?
答案 0 :(得分:1)
同步前备份与drush ard
或drush @dev ard
或适合的别名。您可以在别名设置中设置备份路径。
我认为您将远程服务器命名为dev
。这就是为什么我在下面保留它并使用别名local
作为本地drupal站点。
为您当地的drupal网站添加别名。然后,您可以使用以下命令同步文件:
drush rsync @local @dev
@local是源,@dev是目标。有关如何使用命令rsync的更多详细信息可以显示为:
drush help rsync
您还需要同步数据库以使远程站点运行。为此,将数据库帐户数据添加到@local和@dev的别名数据中。它看起来像这样:
'databases' => array(
'default' => array(
'default' => array(
'driver' => 'mysql',
'username' => 'USERNAME',
'password' => 'PASSWORD',
'port' => '',
'host' => 'localhost',
'database' => 'DATABASE',
)
)
)
用您的数据替换空间支架。然后数据库可以与以下内容同步:
drush sql-sync @local @dev
@local是源,@dev是目标。
最初,同步将在一个方向上进行。在此之后,最好将文件从开发或测试站点同步到生产站点。数据库从生产站点到开发或测试站点以相反的方式同步。
答案 1 :(得分:0)
Drush和Git的工作流程在某种程度上有所不同,因为Drush可以单独提取包 - 你可以使用Git推送到服务器。请务必检查/files
目录,该目录通常位于.gitignore
文件中 - 可能的方法是直接从实际站点镜像文件目录。
同时更新和检查2个或多个站点(本地和远程)的常用方法是在计算机上的脚本上为站点使用Drush别名。
Articles like this one是一个很好的起点。