2015-09-11 75 views
0
  1. 首先,我通過「Bitnami Installer for Windows」設置夢工廠。以下爲https://github.com/dreamfactorysoftware/dsp-core/wiki/Install-Microsoft-Windows
  2. 然後我按照此add-a-rest-api-to-any-sql-db-in-minutes將服務添加到我的遠程Postgres數據庫。
  3. 在「API Docs」選項卡上,成功調用GET/db操作。 (getTables() - 列出所有表名)。
  4. 當試圖調用GET/db/{table_name}操作(getRecordsByFilter() - 通過使用過濾器檢索一個或多個記錄)時,出現以下錯誤。

請幫Dreamfactory:與Postgres的數據庫連接

[app][ERROR ] CDbCommand::fetchAll() failed: SQLSTATE[42601]: Syntax error: 7 ERROR: syntax error at or near "field_name" 
LINE 1: SELECT k.column_name field_name 
           ^. The SQL statement executed was:  SELECT k.column_name field_name 
      FROM "information_schema"."key_column_usage" k 
      LEFT JOIN "information_schema"."table_constraints" c 
       ON k.table_name = c.table_name 
      AND k.constraint_name = c.constraint_name 
      WHERE c.constraint_type ='PRIMARY KEY' 
       AND k.table_name = :table 
       AND k.table_schema = :schema. 
+0

請提供更多的上下文。目前還不清楚你如何進入這種情況。 –

+0

@ihor:內容已更新。 – Vince

回答

0

請檢查您連接到PostgreSQL的版本。事實證明,從8.4開始支持省略as關鍵字。

以下是8.4 release notes部分的報價E.23.3.3。查詢

允許AS指定時一個SELECT(或返回)柱 輸出標籤(齊藤洋)

這工作,只要該列標籤沒有任何的PostgreSQL關鍵字是可選的; 否則AS仍然需要。

因此SELECT k.column_name field_name對於8.3及更低版本無效,但SELECT k.column_name AS field_name可以使用。

如果PostgreSQL的版本是你的問題的原因有以下幾個選項:

  1. 更新數據庫到8.4及以上;
  2. 修補Dreamfactory代碼庫以解決此問題;
  3. 在Dreamfactory的bug跟蹤器中提出一張票,並等待他們爲您解決。
+0

是的。你是對的。我們使用的PostgreSQL版本是8.3。 – Vince

+0

Hi @Ihor,你能給我提供一些關於「修補Dreamfactory代碼庫以解決這個問題的信息」的信息; – Vince

+0

@Vince,簡短的探索表明,問題出在Dreamfactory使用的Yii框架中,而不是Dreamfactory本身。不幸的是,我找不到確切的補丁地點。 –