Pregunta:
drush sql-sync @devyau @stageyau devuelve:
Call to a member function dump() on a non-object in
/root/.composer/vendor/drush/drush/commands/sql/sql.drush.inc, line
275
echo $ PATH devuelve:
/root/.composer/vendor/bin:/usr/lib64/qt-3.3
/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:
/root/bin
drush @devyau uli regresa:
Call to undefined function drush_sql_get_class()
in /root/.composer/vendor/drush/drush/includes
/environment.inc on line 366
drush @stage uli regresa:
call to a member function db_spec() on a non-object in
/root/.composer/vendor/drush/drush/includes/environment.inc, line 370
Aquí están las líneas de environment.inc 361 a 378:
/**
* Tests the currently loaded database credentials to ensure a
database connection can be made.
*/
function drush_valid_db_credentials() {
try {
$sql = drush_sql_get_class();
if (!$sqlVersion = drush_sql_get_version()) {
return FALSE;
}
if (!$sqlVersion->valid_credentials($sql->db_spec())) {
return FALSE;
}
return $sql->query('SELECT 1;');
}
catch (Exception $e) {
return FALSE;
}
}
drush ard regresa:
The external command could not be executed due to
an application error. Unable to determine sites directory for
devyau. Archive saved to /root/drush-backups/archive-dump/20150703220104
/none.20150703_220105.tar.gz
devuelve el estado de drush:
PHP executable : /usr/bin/php
PHP configuration : /etc/php.ini
PHP OS : Linux
Drush script : /root/.composer/vendor/drush/drush/drush.php
Drush version : 7.0.0
Drush temp directory : /tmp
Drush configuration :
Drush alias files : /etc/drush/prodyau.alias.drushrc.php
/etc/drush/devyau.alias.drushrc.php
/etc/drush/stageyau.alias.drushrc.php
devyau.alias.drush.php:
<?php
$aliases['devyau'] = array(
'uri'=> 'dev.[sitename]',
'root'=> '/var/www/vhosts/dev.[sitename]/',
'db-url' => 'mysql://[username]:[password]/devDBname',
);
?>
stageyau.alias.drush.php:
?php
$aliases['stageyau'] = array(
'uri'=> 'stage.[sitename]',
'root'=> '/var/www/vhosts/stage.[sitename]',
'db-url' => 'mysql://[username]:[password]/[stageDBname]',
);
?>
He estado trabajando en esto durante una semana. Perplejo. ¿Algunas ideas?
Respuesta:
Su sitio no parece que se esté iniciando por completo. Por lo tanto, le sugiero que vea si el drush status
se completará en la carpeta sites/default
o sites/sitename
. Debería verse como el resultado completo a continuación.
Una salida de drush status
completa
Drupal version : 7.38
Site URI : sitename.com // could be http://default if you have not set your site url
Database driver : mysql
Database username : db_user
Database name : db_name
Drupal bootstrap : Successful
Drupal user :
Default theme : default_theme
Administration theme : admin_theme
PHP executable : /usr/bin/php
PHP configuration : /etc/php5/cli/php.ini
PHP OS : Linux
Drush script : /usr/local/bin/drush-master/drush.php
Drush version : 8.0-dev
Drush temp directory : /tmp
Drush configuration : /usr/local/bin/drush-master/drushrc.php
Drush alias files : /usr/local/bin/drush-master/includes/../aliases.drushrc.php
Install profile : install_profile
Drupal root : /var/www/html/docroot
Site path : sites/default // Could be sites/sitename.com
File directory path : sites/default/files // Same thing here could be sites/sitename.com/files
Private file directory path : /vagrant/private
Temporary file directory path : /tmp
Para ayudar, esta es la configuración de mi alias que suelo usar
Esto es lo que suelo usar para configurar mi alias completo de drush, tiene opciones que la mayoría no necesita, pero puede ayudar a alguien en el futuro a configurar su alias de drush que quizás no sabían que existía. Si no usa los "alias de ruta" a continuación, debe usar "predeterminado" o el nombre de la carpeta "sitios / nombre de sitio". Puede ver esto en el archivo de alias de ejemplo de drush.
$remote_sites = '/path/to/site'; // usually /var/www/drupal-root-name
$aliases['site.dev'] = array(
'uri' => 'sitename.com',
'remote-host' => '{ip to remote}',
'remote-user' => '{remote ssh user}',
'root' => $remote_sites,
'ssh-options' => '-p {if you ssh in on another port like 2222}',
'path-aliases' => array(
'%drush-script' => '/root/.composer/vendor/bin/drush', // This is so you can have multiple drush installs and use different ones on different sites.
'php'=> '/usr/local/bin/php', // Again if you have different php's for different sites.
'%site' => 'sites/default/', // This is the important part here, it will ensure the proper bootstrap
'%dump-dir' => '/path/to/drush.dbdumps', // This is where you want to dump your databases, normally /tmp folder I think.
'%files' => $remote_sites . '/files' // Your sites file folder, incase it is somewhere else.
),
// You may actually need this, especially if you are running D7 since I haven't ever tested the db-url thing on D7 or above.
'databases' => array (
'default' => array (
'default' => array (
'driver' => 'mysql',
'database' => '{db_name}',
'username' => '{db_user}',
'password' => '{db_pass}',
),
),
),
);
Después de escribir la respuesta, estaba pensando que esta puede ser una pregunta D6, pero respondí asumiendo lo contrario. Si ese es el caso, hágamelo saber e intentaré responder por D6 también si hay alguna diferencia. Espero que esto ayude, ¡gracias!