2014-05-12 62 views
1

我有一個教條更新問題。當添加新表時,表名默認爲類名(帶大寫)'class Foo',創建的表爲'Foo'。如果更改Foo,例如添加或刪除屬性,則在更新時,表格將重命名爲'foo'。如何處理不區分大小寫的文件系統的原則更新(?)

有針對這個問題提出了一項錯誤:http://www.doctrine-project.org/jira/browse/DBAL-598

的問題是,當我導出和上傳數據庫到基於Linux的系統(由MAC-OS出口時),我不得不手工編輯導出文件修復數據庫表。

具體而言,我的問題是,有沒有人想出一個合理的自動清理表名的方法?

回答

1

只需在較低的情況下,在實體定義定義表名稱,例如:

YAML:

# Doctrine.Tests.ORM.Mapping.User.dcm.yml 
Doctrine\Tests\ORM\Mapping\User: 
    type: entity 
    table: cms_users 

XML:

// Doctrine.Tests.ORM.Mapping.User.dcm.xml 
<?xml version="1.0" encoding="UTF-8"?> 
<doctrine-mapping xmlns="http://doctrine-project.org/schemas/orm/doctrine-mapping" 
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     xsi:schemaLocation="http://doctrine-project.org/schemas/orm/doctrine-mapping 
          http://www.doctrine-project.org/schemas/orm/doctrine-mapping.xsd"> 

    <entity name="Doctrine\Tests\ORM\Mapping\User" table="cms_users"> 

譯註:

<?php 
/** 
* @Entity 
* @Table(name="user") 
*/ 
class User { } 

這樣可以確保在不同文件系統上進行模式更新時不會出現任何問題。

+0

咋,我覺得保持小寫更容易。如果是大寫,那會更好,但你是對的。嗯。我將不得不嘗試它,在我的Mac上的B/C它可能不會看到案件的變化。 –

+0

確認。 MacOS並不認爲它是一種變化。 –

+0

@ user3325313如果它幫助它會很好,如果你[接受答案](http://stackoverflow.com/help/accepted-answer)(也許[upvote it]](http://stackoverflow.com/help /爲什麼投票)以及)。因爲你似乎是這裏的新用戶,所以我會向你推薦[旅遊](http://stackoverflow.com/tour)。 ;-) – nietonfir

相關問題