2016-10-07 43 views
1

我已經創建了兩個custom mapping types兩個自定義映射類型後:一個用於Money value object和一個用於Email value object學說:總是告訴我的數據庫不同步使用

現在,每次我跑app/console doctrine:schema:validate主義告訴我的數據庫不同步。

轉儲sqlapp/console doctrine:schema:update --dump-sql它每次都希望以同樣的方式來更新相同的字段:

ALTER TABLE invoices CHANGE total total VARCHAR(255) NOT NULL; 
ALTER TABLE subscriptions CHANGE next_payment_amount next_payment_amount VARCHAR(255) NOT NULL; 
ALTER TABLE stripe_charges CHANGE amount amount VARCHAR(200) NOT NULL, CHANGE receipt_email receipt_email VARCHAR(255) DEFAULT NULL; 
ALTER TABLE stripe_customers CHANGE email email VARCHAR(255) DEFAULT NULL; 

每次試圖更新這些表中,他們已經是完全一樣的狀態設置它們的時間。是我的錯,還是學說的錯?

這裏的代碼爲兩種類型:MoneyTypeEmailType

的GitHub /教義問題here

回答

1

主義是看到每一列的數據庫爲字符串上,但想你想他們是錢/電子郵件所以它的決定,你需要每一次遷移。

對此進行排序的方法是添加requiresSQLCommentHint,以便在列註釋中添加一些文本以顯示它實際上是正確的客戶類型。您只需添加..

/** 
* {@inheritdoc} 
*/ 
public function requiresSQLCommentHint(AbstractPlatform $platform) 
{ 
    return true; 
} 

..到您的自定義類型和Doctrine將處理其餘。

+0

這解決了這個問題!謝謝! :) – Aerendir

+0

太棒了!接得好! – Matteo

相關問題