将Drupal 7.43升级至8时遇错误:源库为Drupal 8却选了7版本
嘿,我之前帮同事处理过一模一样的Drupal升级问题,你的情况核心是迁移模块没法正确识别源数据库的版本——毕竟旧站的drupal_version表是空的,模块只能靠这个表或者系统信息来判断版本,自然会出误判。给你几个靠谱的解决方法:
手动强制指定源站点版本
在你配置源数据库的页面(就是之前定义源站点的地方),不要依赖自动检测功能,直接手动选择「Drupal 7」作为源版本。很多时候自动检测因为表为空失效了,手动指定就能绕过这个问题。修复源数据库的
drupal_version表
如果手动指定还是报错,那可以直接给旧站的Drupal7数据库补全版本记录。登录你的数据库管理工具(比如phpMyAdmin),找到旧站的数据库,执行这条SQL语句:INSERT INTO drupal_version (version) VALUES ('7.43');注意:如果你的旧站数据库用了自定义表前缀,要把
drupal_version改成带前缀的表名,比如myprefix_drupal_version。确认源数据库连接信息正确
别嫌麻烦,再检查一遍你填的源数据库信息:主机地址、用户名、密码、数据库名是不是完全对应你的Drupal7旧站点,有没有不小心填成新的Drupal8数据库了——这种低级错误有时候真的会犯😂。清除Drupal8站点的缓存
有时候迁移模块的缓存会残留错误的版本检测数据,去Drupal8后台的「配置 > 性能」页面,点击「清除所有缓存」,或者如果装了Drush的话,在终端执行drush cr命令清缓存,然后再重新尝试迁移配置。
按照这个顺序试下来,应该能解决那个“源数据库是Drupal8版本,但选择了7版本”的错误。
内容的提问来源于stack exchange,提问作者dsz36

