作为一个新用户,我遇到了一个令我困惑的问题,我希望这里的人能回答我如何修复这个错误。我试图用命令将现有的drupal安装克隆到我的mac上的一个位置
echo "Pushing private files"
/usr/local/bin/drush core-rsync @hpc.dev:%private @hpc.local:%private
echo "Pushing webroot files"
/usr/local/bin/drush -y core-rsync @hpc.dev @hpc.local
echo "Pushing database"
/usr/local/bin/drush -y sql-sync --no-cache @hpc.dev @hpc.local
echo "Clearing Drupal cache"
/usr/local/bin/drush -y @hpc.local cc all这很好,直到使用了sql-sync部分,在其中我得到了错误:
... stuff stuff stuff
Command dispatch complete [notice]
Copying dump file from Source to Destination. [ok]
Starting to import dump file onto Destination database. [ok]
/usr/bin/php /usr/local/drush-master/drush.php --php=/usr/bin/php --backend=2 [notice]
--verbose --yes --strict=0 --root=/Users/cook47/Sites/drupal-test/html
--uri='http://localhost/~cook47/drupal-test' sql-query
--file=/tmp/hpc-drupal-dev_20160302_005939.sql.gz --file-delete 2>&1
exception 'Drush\Sql\SqlException' with message 'Unable to find a matching SQL [error]
Class. Drush cannot find your database connection details.' in
/usr/local/drush-master/commands/sql/sql.drush.inc:591
Stack trace:
#0 /usr/local/drush-master/commands/sql/sql.drush.inc(419):
drush_sql_get_class(NULL)
#1 [internal function]: drush_sql_query()
#2 /usr/local/drush-master/includes/command.inc(366):
call_user_func_array('drush_sql_query', Array)
#3 /usr/local/drush-master/includes/command.inc(217): _drush_invoke_hooks(Array,
Array)
#4 [internal function]: drush_command()
#5 /usr/local/drush-master/includes/command.inc(185):
call_user_func_array('drush_command', Array)
#6 /usr/local/drush-master/lib/Drush/Boot/BaseBoot.php(67): drush_dispatch(Array)
#7 /usr/local/drush-master/includes/preflight.inc(66):
Drush\Boot\BaseBoot->bootstrap_and_dispatch()
#8 /usr/local/drush-master/drush.php(12): drush_main()
#9 {main}我在本地主机上的数据库或我的别名似乎出了问题。
这里是localhost的别名:
$aliases['local'] = array (
'root' => '/Users/cook47/Sites/drupal-test/html', //CHANGEME
'uri' => 'http://localhost/~cook47/drupal-test', //CHANGEME
//'remote-host' => "localhost",
//'remote-user' => 'cook47',
'path-aliases' => array (
'%drush' => '/usr/local/bin/drush', //CHANGEME
'%site' => 'sites/default/',
'%files' => 'sites/default/files',
'%private' => '../private',
'%dump' => '/export/www/hpc-drupal-dev.llnl.gov/drush-dump.sql',//CHANGEME
),
'target-command-specific' => array(
'sql-sync' => array(//CHANGEME
'enable' => array('devel'),
'disable' => array(
),
),
),
'command-specific' => array(
'rsync' => array(
'mode' => 'vrlzOk',
'exclude-conf' => 1,
),
),
'databases' => array (
'default' => array (
'default' => array (
'database' => 'hpc-drupal-dev', //CHANGEME
'username' => 'hpc-drupal-dev', //CHANGEME
'password' => 'xxxxxx', //CHANGEME
'host' => 'localhost',
'port' => '',
'driver' => 'mysql',
'prefix' => '',
),
),
),
);发布于 2016-03-02 01:34:44
Drush不再允许您在站点别名文件中定义“数据库”记录,以便与sql-sync一起使用。这曾经在早期版本中起作用,但不再受支持。确保源站点和目标站点都有包含数据库信息的有效settings.php文件。
测试:
drush @hpc.dev sql-conf如果您的数据库连接是正确的,它将显示。在每个站点上使用sql-conf可以帮助隔离哪些站点的连接信息有问题。
https://drupal.stackexchange.com/questions/193188
复制相似问题