簡體   English   中英

Symfony2:數據庫架構和實體不使用更改的元數據進行更新

[英]Symfony2: Database schema and entities not updating with changed metadata

我無法在Symfony2中更新架構。

我已經使用理論將數據庫導入到Symfony2中,並在YML中創建了所有ORM文件。

我已經從該元數據創建了所有實體,並且效果很好,但是如果我想使用orm.yml文件更改數據庫架構,那么在重新生成實體時它不會更新數據庫,甚至不會更新實體。

導入在/src/{name}/{my}bundle/Resources/config/doctrine/metadata/orm/{table}.orm.yml中創建了orm.yml文件。

它創建沒有錯誤。

當我做:

php app/console doctrine:schema:update --dump-sql

它顯示:

ALTER TABLE accounttypes CHANGE description description VARCHAR(45) NOT NULL

所以我:

php app/console doctrine:schema:update --force

和:

Updating database schema...
Database schema updated successfully! "1" queries were executed

我可以一遍又一遍地執行此操作,並出現相同的查詢,然后執行它,並告訴我已完成,但再次表明需要再次執行。

然后,我進入了orm.yml文件並進行了大幅度的更改,但是除了執行此操作時始終存在的查詢之外,沒有其他任何查詢出現。

文件AccountTypes.orm.yml

Accounttypes:
  type: entity
  table: accounttypes
  fields:
    description:
      id: true
      type: string
      length: 45
      fixed: false
      nullable: false
      generator:
        strategy: IDENTITY
  lifecycleCallbacks: {  }

更改為此:

Accounttypes:
  type: entity
  table: accounttypes
  id:
    id:
      type: integer
      generator: { strategy: AUTO }
  fields:
    description:
      id: true
      type: string
      length: 50
  lifecycleCallbacks: {  }

它仍然告訴我我需要:

ALTER TABLE accounttypes CHANGE description description VARCHAR(45) NOT NULL

我也嘗試過使用DoctrineMigrationsBundle,並且相同的查詢顯示需要完成。 我遷移; 它說查詢已完成,當我再次使用它時,將顯示相同的查詢。

有人知道這是怎么回事嗎? 我對此感到困惑,因此不勝感激。

按照上面的@Tomasz ,確保您的Symfony2不會嘗試使用批注而不是yaml來設置數據庫。

我有同樣的問題。

原因是-新創建的捆綁包尚未添加到app\\config.yml

因此,這個新捆綁包中的所有實體從未與php app/console doctrine:schema:update --dump-sql一起導出php app/console doctrine:schema:update --dump-sql

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM