首页 > 解决方案 > drush sql-sync 错误找不到数据库记录

问题描述

我尝试运行 drush sql-sync @dev sql-conf --verbose

使用 drush 8.1.18 和 php 7.3.14,我收到此错误:

Begin redispatch via drush_invoke_process().                                                                                                                                                                                         [notice]
Calling proc_open(env COLUMNS=237 /var/www/app/html/vendor/drush/drush/drush.launcher  --root=/var/www/app/html --verbose  sql-sync '@dev' sql-conf 2>&1);
Loaded alias @dev from file /home/mike/.drush/aliases.drushrc.php                                                                                                                                                              [notice]
/usr/bin/php /home/mike/.composer/vendor/drush/drush/drush.php --php=/usr/bin/php  --backend=2 --verbose --uri= --root=/var/www/app/html  sql-conf   --all 2>&1                                                              [notice]
The command could not be executed successfully (returned: Begin redispatch via drush_invoke_process().                                                                                                                            [error]
                                                            [notice]
Calling proc_open(env COLUMNS=237  /var/www/app/html/vendor/drush/drush/drush.launcher  --root=/var/www/app/html --verbose --uri=  sql-conf   --all 2>&1);
Loading outputformat engine.
  [notice]
Array
(
    [default] => Array
        (
            [default] => Array
                (
                    [database] => mydb
                    [username] => root
                    [host] => localhost
                    [port] =>
                    [driver] => mysql
                    [prefix] =>
                    [charset] => utf8mb4
                    [collation] => utf8mb4_general_ci
                )

        )

)

Command dispatch complete
  [notice]
End redispatch via drush_invoke_process().
  [notice]
, code: 0)
Error: no database record could be found for source @dev                                                                                                                                                                       [error]
Command dispatch complete                                                                                                                                                                                                            [notice]
End redispatch via drush_invoke_process(). 

我检查了我的数据库凭据。我可以毫无问题地登录到本地数据库。我该如何进一步调试呢?我尝试将 echo 语句放入 ~/.config/composer/vendor/drush/drush/commands/sql/sqlsync.drush.inc
但它根本没有使用该文件。

这是我定义我的开发别名的方式:

<?php

$aliases['em.dev'] = array(
    'uri' => '',
    'root' => '/var/www/myapp/html',
    'path-aliases' => array(
        '%drush-script' => '/home/mike/.composer/vendor/drush/drush/drush.php',
        '%dump-dir' => '/tmp',
    ),
);

标签: drush

解决方案


呃,我的别名写错了。uri 是空的。我只是把 localhost 放在那里,它正在工作。


推荐阅读