Migration 尝试将drush迁移升级与DDEV一起使用时连接被拒绝(Drupal 7到8升级)

Migration 尝试将drush迁移升级与DDEV一起使用时连接被拒绝(Drupal 7到8升级),migration,drupal-8,drush,ddev,Migration,Drupal 8,Drush,Ddev,我正在尝试使用DDEV在本地测试我的跑步俱乐部的Drubal 7网站的升级 我有一个包含网站副本的容器,下面的结果来自DDEV describe命令: URLs ---- https://drupalTest.ddev.site:8003 https://127.0.0.1:32773 http://drupalTest.ddev.site:8002 http://127.0.0.1:32774 MySQL/MariaDB Credent

我正在尝试使用DDEV在本地测试我的跑步俱乐部的Drubal 7网站的升级

我有一个包含网站副本的容器,下面的结果来自DDEV describe命令:

    URLs
    ----
    https://drupalTest.ddev.site:8003
    https://127.0.0.1:32773
    http://drupalTest.ddev.site:8002
    http://127.0.0.1:32774

    MySQL/MariaDB Credentials
    -------------------------
    Username: "db", Password: "db", Default database: "db"

    or use root credentials when needed: Username: "root", Password: "root"

    Database hostname and port INSIDE container: db:3306
    To connect to db server inside container or in project settings files:
    mysql --host=db --user=db --password=db --database=db
    Database hostname and port from HOST: 127.0.0.1:32771
    To connect to mysql from your host machine,
    mysql --host=127.0.0.1 --port=32771 --user=db --password=db --database=db

    Other Services
    --------------
    MailHog (https):        https://drupalTest.ddev.site:8026
    MailHog:                http://drupalTest.ddev.site:8025
    phpMyAdmin (https):     https://drupalTest.ddev.site:8037
    phpMyAdmin:             http://drupalTest.ddev.site:8036
我还有一个包含Drupal8(新安装)的容器

我在让drush迁移升级命令工作时遇到问题,这是

ddev exec drush migrate-upgrade --legacy-db-url=mysql://db:db@127.0.0.1:32771/db --legacy-root=https://drupalTest.ddev.site:8003 --configure-only
刚刚得到这个错误:

SQLSTATE[HY000] [2002] Connection refused                            [error]
欢迎来到ddev,马克

您的问题是您使用了错误的旧数据库url。数据库的凭据将是:

主机:旧版安装的容器名称(如ddev--db)(不是127.0.0.1) 端口:不需要指定,因为它是默认的3306(在docker容器空间内)

看起来你想要这样的东西:
ddev exec drush迁移升级--遗留数据库url=mysql://db:db@ddev drupaltest db/db—传统根目录=https://drupalTest.ddev.site:8003 --仅配置

请参阅“不同的项目能否相互通信”下的

此外,您绝对需要阅读,这有助于理解迁移环境中的所有这些内容


我注意到,您似乎在为不同的项目使用不同的http端口——您根本不需要这样做。使用ddev的正常方式是所有端口都位于端口80和443上(如果存在冲突,也可以设置其他端口)。您不需要设置router_http_port或router_https_port就可以在同一台主机上运行多个项目。

非常有用,我确信下一个问题是新问题,但当我运行该命令时,会收到大约20条警告消息,所有消息都是相同的:htmlspecialchars()希望参数1是字符串,数组给定[警告]php:424我用谷歌快速搜索了一下,虽然不太明显,但它与特殊的字符有关。我会继续用谷歌搜索!老Drupal经常有这样的消息,我已经看到很多了。你可能不想解决这个问题。但请确保您使用的是当前的drush—您的站点是否在目标项目中安装了当前的drush<代码>ddev编写器需要drush/drush。否则,使用您提供的命令,您将只使用捆绑在web容器中的drush8。如果您进行了站点安装,那么drush启动器会找到安装了drush的站点。谢谢@rfay现在看起来很明显,我使用的是drush的旧版本。使用--destination=somedir,它们将转到web/somedir。没有--destination他们转到settings.ddev.php中定义的sites/default/files/sync。我今天看了一眼,所有的.yml文件都在/tmp文件夹中,(我确实运行了几次)也许我只是有时间,谢谢:)
SQLSTATE[HY000] [2002] Connection refused                            [error]