जोड़ने की कोशिश करता है मेरे पास सिद्धांत और MySQL 5.6 स्टैक के साथ एक ताजा सिम्फनी 2.8 स्थापना है।सिद्धांत स्कीमा अपडेट हमेशा नल
एक doctrine:schema:update --force
को क्रियान्वित करने के बाद, मैं
Database schema updated successfully! "x" queries were executed
यहाँ मेरी समस्या यह है देख सकते हैं: यहां तक कि अगर मैं निष्पादित यह कई बार, सिद्धांत हमेशा स्कीमा मतभेद हैं।
--dump-sql
साथ
, मैं देख सकता हूँ कि इन सभी जिज्ञासाओं के से संबंधित हैं: स्ट्रिंग पर
- जोड़ने नहीं NULL प्राथमिक कुंजी
- जोड़ने datetime मैदान पर शून्य नहीं
हालांकि, जब मैं अपना डेटाबेस जांचता हूं, तो इन कॉलम में पहले से ही शून्य नहीं है।
class MyEntity
{
/**
* @ORM\Id
* @ORM\Column(type="string", length=5, name="cd_key")
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $code;
...
यहाँ एक SHOW CREATE TABLE my_entity;
का परिणाम है::
CREATE TABLE `my_entity` (
`cd_key` varchar(5) COLLATE utf8_unicode_ci NOT NULL,
`label` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
`number` int(11) NOT NULL,
PRIMARY KEY (`cd_key`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci ;
और यहाँ क्वेरी सिद्धांत doctrine:schema:update
कमांड के साथ निष्पादित करने के लिए कोशिश
यहाँ एक ही संपत्ति/स्तंभ पर एक उदाहरण है:
ALTER TABLE my_entity CHANGE cd_key cd_key VARCHAR(5) NOT NULL;
- मैं प्रत्येक कमांड निष्पादन के बीच अपने सिम्फनी कैश को साफ़ करता हूं।
- मैं @ कॉलम एनोटेशन (0 अगर यह पहले से ही @Id के रूप में परिभाषित किया गया है) पर
nullable=false
जोड़ने का प्रयास करें, लेकिन कोई प्रभाव नहीं है। doctrine:schema:validate
कोई मैपिंग समस्या नहीं है (पाठ्यक्रम की सिंक को छोड़कर)- मैं पूर्ण डेटाबेस को छोड़ने और फिर से बनाने का प्रयास करता हूं, लेकिन कोई प्रभाव नहीं देता है।
कोई विचार?
'nullable = false' को सेट नहीं करेगा, इसका मतलब है कि यह उस कॉलम के हिस्से के रूप में 'न्यूल' जोड़ता है? इसे 'nullable = true' में बदलना मूल्य को शून्य होने की अनुमति देगा। –