drupal drush – drush sql-sync falla

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!

Leave a Comment

Your email address will not be published.

Scroll to Top

istanbul avukat

-

web tasarım