मेरी परियोजना में मैं सिद्धांत सिद्धांत 2.5.4/पोस्टग्रेज 9.5 का उपयोग कर रहा हूं। मैं yaml का उपयोग करके एक jsonb फ़ील्ड जोड़ने का प्रयास कर रहा हूँ:

fields:
  obj: json_array

यह जेसन में परिवर्तित हो जाता है (और जेसनबी नहीं)। जेसन या जेसनबी चुनने के बारे में विनिर्देश नोट:

चुना गया है कि कॉलम परिभाषा में प्लेटफॉर्मऑप्शन विशेषता सरणी के अंदर जेसनबी विकल्प है और इसे सत्य पर सेट किया गया है।

लेकिन प्लेटफॉर्मऑप्शन काम नहीं कर रहा है (इसे ओबीजे के नीचे जोड़ने की कोशिश की, शीर्ष पर ... बिना किसी सफलता के)। मैं एक jsonb फ़ील्ड कैसे जोड़ सकता हूँ?

धन्यवाद, दान

9
Dani Magen 19 मई 2016, 11:20
ऐसा लगता है कि ऐसा करने का कोई तरीका नहीं है (बस उसी सिद्धांत/डीबीएल संस्करण के लिए स्रोत में चेक किया गया है)
 – 
zerkms
30 मई 2016, 06:31

2 जवाब

सबसे बढ़िया उत्तर

यह सिद्धांत/dbal v2.6+ द्वारा समर्थित है (इसके लिए PHP 7.1 की आवश्यकता है)। आपको केवल json_array का उपयोग करना है और options={"jsonb"=true} सेट करना है, मैंने इसका परीक्षण सिद्धांत/dbal v2.6.3 पर किया है।

यह PHP प्रारूप में ऐसा दिखता है

/**
 * @ORM\Column(type="json_array",nullable=true,options={"jsonb"=true})
 */
private $details;

और यह क्वेरी बनाता है जैसे (मौजूदा तालिका के लिए):

ALTER TABLE mytable ADD details JSONB NOT NULL;

टाइप मैपिंग के बारे में अधिक जानकारी डॉक्ट्रिन मैपिंग मैट्रिक्स।

9
Evren Yurtesen 13 पद 2019, 19:29
1
इसने काम कर दिया! क्या आप मुझे options मानों के बारे में और दस्तावेज़ दे सकते हैं? मुझे आधिकारिक दस्तावेज़ में "jsonb"=true के बारे में कुछ भी नहीं मिला।
 – 
Kevin
11 पद 2019, 09:39
1
मैंने उत्तर में मैट्रिक्स मैपिंग का लिंक जोड़ा है। लेकिन json_array पदावनत है ... :)
 – 
Evren Yurtesen
13 पद 2019, 19:30
1
type="json", options={"jsonb": true} का उपयोग करें
 – 
Maxim Mandrik
2 मार्च 2021, 10:20
केवल PostgreSQL के लिए। स्रोत कोड में github.com/doctrine/dbal /blob/3.1.x/src/Platforms/… PostgreSQL100Platform extends PostgreSQL94Platform if (!empty($column['jsonb'])) { return 'JSONB';} return 'JSON';
 – 
Maxim Mandrik
2 मार्च 2021, 10:26

boldtrn/jsonb-bundle का उपयोग करें, यह एक jsonb सिद्धांत प्रकार के साथ-साथ कस्टम फ़ंक्शन प्रदान करता है PostgreSQL jsonb डेटा प्रकार द्वारा प्रदान किए गए विशेष ऑपरेटरों तक पहुंचने के लिए।

1
aferber 22 जिंदा 2017, 13:31