在我的Drupal项目中从MySQL
迁移到Postgres
drush输出后:
drush cc all
No Drupal site found, only 'drush' cache was cleared.
Drupal项目没有问题。从cli连接到pg db也可以。
命令drush sql-connect
输出:
C:\ Users \ xxx \ AppData \ Local \ Temp \ dru4F48.tmp psql -q --dbname = xxx --host = 127.0.0.1 --port = 5432 --username = postgres --no-align - -field-separator ='' - pset tuples_only = on
系统:赢7 / php5.4.43 / drush 7.3 / postgres 9.3
当我运行drush sql-cli
时,会显示以下消息:
命令
PGPASSFILE
不可用
有什么想法吗?
答案 0 :(得分:0)
根据@Remownz comment,当传递PostgreSQL的密码文件(PGPASSFILE
)时,似乎涉及与Windows上的命令行语法相关的Drush错误。检查相关的拉取请求:GitHub上的#880和#2973正在尝试修复它。尝试升级到Drush 8.x或更高版本,如果不起作用,请应用上述补丁(拉取请求)。
以下是错误报告的链接:#492 - Drupal 7 on WAMP with PostgreSQL。
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";
}