2016-04-28 10 views
0

После перехода от MySQL к Postgres Drush выходов в моем проекте Drupal:Drush не может найти сайт Drupal после перехода на PostgreSQL

drush cc all 
No Drupal site found, only 'drush' cache was cleared. 

Проект Drupal работает без проблем. Также подключается к pg db из cli.

drush sql-connect Команда выхода:

C: \ Users \ ххх \ AppData \ Local \ Temp \ dru4F48.tmp PSQL -q --dbname = ххх --host = 127.0.0.1 --port = 5432 --username = Postgres --no-выравнивают --field-разделитель =» '= --pset tuples_only на

System: Win 7/php5.4.43/Drush 7.3/Postgres 9.3

Когда я бегу drush sql-cli, отображается это сообщение:

команда PGPASSFILE не доступна

Любые идеи?

+0

У вас есть drushrc или Drush псевдоним файл, который может по-прежнему определять информацию о соединении MySQL? – acrosman

+0

нет, нет ничего подобного, но если я делаю> drush sql-cli, я получаю сообщение, что команда «PGPASSFILE» недоступна – Remownz

+0

https://github.com/drush-ops/drush/pull/880 – Remownz

ответ

0

В соответствии с @Remownz comment он попадает в ошибку Drush, связанную с синтаксисом командной строки Windows, когда передается файл паролей PostgreSQL (PGPASSFILE). Проверьте связанные запросы тяги: #880 и #2973 в GitHub, которые пытаются его исправить. Попробуйте перейти на Drush 8.x или выше, если это не сработает, примените указанные исправления (запросы на pull).

Вот ссылка на отчет об ошибке: #492 - Drupal 7 on WAMP with PostgreSQL.


содержание Patch файла для Drush 8.x (для ручного патча):

--- a/src/Sql/SqlPgsql.php 
+++ b/src/Sql/SqlPgsql.php 
@@ -41,10 +41,10 @@ private function createPasswordFile() 

    public function command() 
    { 
-  $environment = ""; 
+  $environment = drush_is_windows() ? "SET " : ""; 
     $pw_file = $this->createPasswordFile(); 
     if (isset($pw_file)) { 
-   $environment = "PGPASSFILE={$pw_file} "; 
+   $environment .= "PGPASSFILE={$pw_file} "; 
     } 
     return "{$environment}psql -q"; 
    }