我刚刚安装了一个新的Drupal 8,它随Drush 9一起提供,我试图设置所有内容以使用命令sql:sync或config:pull来同步本地和暂存,但是每次我运行命令' drush sql:sync @local @stage'我收到以下错误
在SqlSyncCommands.php第86行中:
[异常]错误:找不到源的数据库记录 @local
这是我的self.site.yml
local:
host: localhost
user: root
root: /var/www/html/new-drupal
uri: http://new-drupal.local
stage:
host: XX.XX.XX.XX
user: root
root: /var/www/html/new-drupal
uri: http://new-drupal.my-staging.com
四处搜寻,发现包含此选项的别名文件的旧版本:
'databases' =>
array (
'default' =>
array (
'default' =>
array (
'driver' => 'mysql',
'username' => 'sqlusername',
'password' => 'sqlpassword',
'port' => '',
'host' => 'localhost',
'database' => 'sqldbname',
),
),
),
但是检查9版本的示例文件没有任何相关信息:https://github.com/drush-ops/drush/blob/master/examples/example.site.yml
有人遇到了同样的问题并找到了解决方案吗?
答案 0 :(得分:0)
自从我转换以来已经有一段时间了。我遇到了类似的问题,并采用了最少配置的方法。
首先,比较以下命令的结果以查看是否存在任何问题:
drush site:alias
drush site:alias @self
drush site:alias @local
我没有self.site.yml文件。我已将其命名为mine drush / sites / remote.site.yml,并且其中只有远程别名。我没有定义@local别名,而是使用内置的@self别名。
在drush / drush.yml中,我有:
drush:
paths:
config:
- ../docroot/sites/default/local.drush.yml
我只有docroot / sites / default / local.drush.yml
options:
uri: 'http://localhost:port'
使用此配置,drush site:alias @self的结果为
'@self':
root: /var/www/docroot
uri: 'http://localhost:port'
并假设我在drush / sites / remote.site.yml中具有有效的@stage别名,我会直接运行
drush sql:sync @self @stage
如果您想要@local别名,则应该将其移至本地drush配置。