我目前正在致力於實現OpenCart數據庫的Symfony 2.8項目。我已經建立了一些映射,以便能夠吸引客戶/地址/訂單的細節,到目前爲止似乎是好的。學說更新不斷更改我的整數varchars
然而,當我改變我的entites東西定製的桌子,我嘗試--force更新我的數據庫,我收到以下錯誤:
[Doctrine\DBAL\Exception\DriverException] An exception occurred while executing 'ALTER TABLE oc73_customer CHANGE address_id address_id VARCHAR(255) NOT NULL': SQLSTATE[HY000]: General error: 1832 Cannot change column 'address_id': used in a foreign key constraint 'FK_ B25E4F72F5B7AF75'
[Doctrine\DBAL\Driver\PDOException] SQLSTATE[HY000]: General error: 1832 Cannot change column 'address_id': used in a foreign key constraint 'FK_ B25E4F72F5B7AF75'
看來,我的更新正在試圖改變在將其更改爲INT以匹配外鍵後,將oc73_customer中的address_id更改爲VARCHAR。我檢查我的實體(Oc73Customer):
/**
* @var integer
*
* @ORM\Column(name="address_id", type="integer")
*/
private $addressId;
在我oc73_address表,我的實體條目:
/**
* @var integer
*
* @ORM\Id
* @ORM\Column(name="address_id", type="integer")
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $addressId;
這也被設置爲一個整數 - 所以爲什麼我更新不斷試圖改變ADDRESS_ID在我的oc73_customer表中的VARCHAR?我在代碼中找不到任何地方說它應該是?
如果它的任何幫助,這是我config.yml:
doctrine:
dbal:
default_connection: default
connections:
default:
driver: pdo_mysql
host: "%database_host%"
port: "%database_port%"
dbname: "%database_name%"
user: "%database_user%"
password: "%database_password%"
charset: UTF8
schema_filter: ~^(?!oc73_simple_*)~
mapping_types:
enum: string
orm:
auto_generate_proxy_classes: "%kernel.debug%"
naming_strategy: doctrine.orm.naming_strategy.underscore
auto_mapping: true
任何幫助,這是極大的讚賞 - 這似乎是一個真正的頭痛處理與教義和Symfony的Opencart的數據庫。
謝謝 邁克爾
的addresId不應該是一個映射字段類似的東西?: '/ ** * @var地址 * * @ORM \ OneToOne(targetEntity = 「地址」,級聯= { 「持續」}) */ 私有$地址;' 無論如何,支持主題,你嘗試刪除你的整個數據庫(如果你當然可以),並從開始創建 –
不,我真的不能刪除數據庫,但我認爲我可能只是解決了它 - 我認爲這是一個緩存問題。 –