2014-01-07 16 views
1

得到正確的序列名當我嘗試在我的Postgres數據庫使用學說插入一個新的實體,我得到以下錯誤:教義我不能爲Postgres的

SQLSTATE[42P01]: Undefined table: 7 ERROR: relation "schema.table_id_seq" does not exist 

還是在我的數據庫中的序列被稱爲「schema.seq_table_id」

我們可以將文件學說\ ORM \製圖\ ClassMetadataFactory中所看到的,序列名稱設置,如:

$sequenceName = $class->getTableName() . '_' . $columnName . '_seq'; 

反正是有指定sequen否則爲了有「seq」作爲前綴?

回答

1

它在我看來像你的實體已被定義爲錯誤的序列名稱。您可以指定序列名是在你的實體類的註釋是這樣的:

use Doctrine\ORM\Mapping as ORM; 

class MyTable 
{ 
    /** 
    * @var integer $tableId 
    * 
    * @ORM\Column(name="table_id", type="integer", nullable=false) 
    * @ORM\Id 
    * @ORM\GeneratedValue(strategy="SEQUENCE") 
    * @ORM\SequenceGenerator(sequenceName="schema.seq_table_id", allocationSize=1, initialValue=1) 
    */ 
    private $tableId; 

    // ...... 

所以不要緊,你的序列的名字是什麼,你可以這樣指定。如果我正確理解你的問題,這應該解決問題