सिद्धांत टाइमस्टैम्प त्रुटि: SQL सर्वर 2008 टेबल आयात करें
वेब एजेंसी » डिजिटल समाचार » सिद्धांत टाइमस्टैम्प त्रुटि: SQL सर्वर 2008 टेबल आयात करें

सिद्धांत टाइमस्टैम्प त्रुटि: SQL सर्वर 2008 टेबल आयात करें

किसी फ़ील्ड के साथ SQL सर्वर तालिका कैसे आयात करें टाइमस्टैम्प सिद्धांत के साथ? जब यहां और वहां ट्यूटोरियल पर्याप्त नहीं होते हैं, तो अक्सर आपके सिरों को प्राप्त करने का एक ही तरीका होता है ... अपने हाथ गंदे करो! आज मैं एक समाधान प्रस्तावित करता हूं, जो मुझे आशा है कि सिद्धांत के विकास के प्रभारी समुदाय द्वारा शीघ्रता से एकीकृत किया जाएगा, जो SQL सर्वर डेटाबेस से Symfony2 संस्थाओं को बनाने की अनुमति देता है जिसमें एक प्रकार का क्षेत्र होता है टाइमस्टैम्प.

टाइमस्टैम्प प्रकार क्या है?

टाइमस्टैम्प प्रकार पर कुछ छोटी जानकारी निर्दिष्ट करना मेरे लिए आवश्यक प्रतीत होता है। मैं एक MySQL विशेषज्ञ नहीं हूँ, लेकिन मुझे जो जानकारी मिली है, उससे MySQL टाइमस्टैम्प एक तारीख की तरह दिखता है, जिससे इसे बदलना आसान हो जाता है। हालाँकि, SQL सर्वर के लिए एक ही प्रकार इसकी समझ में थोड़ा अधिक सूक्ष्म है। दस्तावेज़ Microsoft Technet पर उपलब्ध है।

एक डेटा प्रकार जो एक डेटाबेस में स्वचालित रूप से उत्पन्न सिंगल-कैरेक्टर बाइनरी नंबरों को उजागर करता है।
दिलचस्प है... और मैं डॉक्ट्रिन को कैसे कहूँ कि मुझे मत बदलो? मैं समस्या को दूर करने के लिए एक समाधान प्रस्तावित करता हूं ...

एक "कस्टम" समाधान खोजें

मैं पहले से ही आने वाले संदेशों को देख सकता हूं कि पहले से ही एक तैयार विधि है जो काम करती है। हाँ! इसके अलावा, यह सिम्फनी 2 कार्य है जिसे इस तरह से कहा जा सकता है:

php ऐप/कंसोल सिद्धांत: मानचित्रण: आयात
यह कार्य ठीक काम करता है, लेकिन जैसा कि मैंने यहां पढ़ा है, सिद्धांत डेटाबेस पर लगभग 70-80% संभावित मैपिंग के लिए काम करता है। मेरे मामले में, मैं एक SQL सर्वर (2008) तालिका की मैपिंग निर्यात करना चाहता था, जिसमें एक प्रसिद्ध TimeStamp फ़ील्ड शामिल थी। और शेष 20% मैपिंग में ठीक इसी प्रकार के क्षेत्र हैं।

मैं कमांड चलाऊंगा और मैपपैक आयात करने का प्रयास करूंगा।

1
php ऐप/कंसोल सिद्धांत: मैपिंग: आयात - बल नेमस्पेसनामबंडल xml

मेरे मामले में, मुझे दो अतिरिक्त विकल्पों का उपयोग करना पड़ा, अर्थात्:

  1. -एम = "..." निर्दिष्ट करने के लिएइकाई प्रबंधक मेरे SQL सर्वर डेटाबेस के प्रभारी;
  2. --फिल्टर = "टेबल"। मैं इस विकल्प का उपयोग करना चाहता था जो मारियाडीबी के साथ काम करता था लेकिन एमएसएसक्यूएल के साथ प्रयोग किए जाने पर इसे अनदेखा किया गया। यह आपको निर्यात करने के लिए तालिका निर्दिष्ट करने की अनुमति देता है। मेरे मामले में, मैंने अपने बीडीडी की प्रतिलिपि बनाई थी, मैंने उन तालिकाओं को हटा दिया था जो मुझे रूचि नहीं देते थे और एक नई प्रोफ़ाइल बनाई थीइकाई प्रबंधक.
    और यहाँ अपवाद उठाया गया है:
1
2
[सिद्धांतDBALDBALException]
अज्ञात डेटाबेस टाइप टाइमस्टैम्प अनुरोधित, DoctrineDBALPlatformsSQLServer2008Platform इसका समर्थन नहीं कर सकता है।

अब से, हमें पासा पलटना होगा।
टाइमस्टैम्प प्रकार समर्थित नहीं है - और मैं मानता हूं कि मुझे वास्तव में नहीं पता है कि किस प्रकार के PHP फ़ील्ड्स को इसके साथ संबद्ध करना है - हम अस्थायी रूप से डॉक्ट्रिन को बताएंगे कि इस प्रकार को परिवर्तित किया जाना चाहिए दिनांक और समय.

  • ट्री स्ट्रक्चर द्वारा बताए गए फोल्डर में जाएं, वेंडरडॉक्ट्रिनडबालिबडॉक्ट्रिनडीबीएएलप्लेटफॉर्म.
  • इस फ़ोल्डर में अधिकांश मौजूदा DBMS का समर्थन करने वाली कक्षाएं हैं।
  • मेरे मामले में मैं SQL Server 2008 R2 पर काम कर रहा था, इसलिए मैं फ़ाइल को संपादित करता हूं SQLServer2008Platform.php, लेकिन बेझिझक दूसरी फ़ाइल संपादित करें यदि यह आपके कॉन्फ़िगरेशन से मेल खाती है।
  • हम विधि संपादित करेंगे प्रारंभिक सिद्धांत टाइप मैपिंग. चर में सिद्धांत प्रकार मानचित्रण प्रकार बदलने के लिए जानकारी मौजूद है। पंक्ति जोड़ें:
    $this->doctrineTypeMapping['timestamp'] = 'datetime';
  • मैपिंग आयात फिर से शुरू करें। सभी क्षेत्रों की मैपिंग आयात की गई है।
  • आपको फ़ाइल में जोड़ी गई लाइन को हटाना याद रखना चाहिए। यदि आप अनिश्चित हैं, तो सभी विक्रेताओं को हटा दें और उन्हें पुनः स्थापित करें।
  • अब क्रमिक रूप से जेनरेट की गई फाइलों पर जाएं। प्रत्येक का पथ इंगित किया गया है, और बदले में, नीचे दिए गए संकेतों का पालन करें।
    • अब आपके पास एक्सएमएल में आपकी टेबल के बराबर है।
    • TimeStamp प्रकार फ़ील्ड से संबंधित पंक्तियों को हटाएं। इस तरह, सिद्धांत इन क्षेत्रों की उपेक्षा करेगा।
    • SQL सर्वर के साथ एक छोटी सावधानी एक या अधिक रिक्त स्थान वाले "कॉलम" द्वारा निहित प्रत्येक मान के चारों ओर स्क्वायर ब्रैकेट जोड़ना है।
      इस लाइन के लिए,

      SQL सर्वर कॉलम "माई इन्फोस" है। सिद्धांत MSSQL के साथ रिक्त स्थान को संभालना नहीं जानता है। तो आपको इस तरह हुक जोड़ने की जरूरत है:
  • जब आपकी फ़ाइलें ठीक कर दी जाती हैं, तो हम इकाई बनाना शुरू कर देते हैं।
    1
    php ऐप/कंसोल सिद्धांत: मैपिंग: कन्वर्ट एनोटेशन ./src

आपको इस तरह उपयोग करने के लिए इकाई प्रबंधक को निर्दिष्ट करने की आवश्यकता हो सकती है: -एम = "...".

  • अब आप मैपिंग को हटा सकते हैं, यानी संसाधनों में मौजूद .xml फ़ाइलें।
    बस इतना ही, अब आपके पास डॉक्ट्रिन द्वारा जनरेट की गई मान्य संस्थाएं हैं। यह समाधान थोड़ा ... "ब्रायन बकवास" तब तक मान्य है जब तक सिद्धांत के विकास के लिए जिम्मेदार टीम ने व्यवहार्य समाधान को एकीकृत नहीं किया है जो टाइमस्टैम्प प्रकार को PHP के भीतर मूल रूप से समर्थित करने की अनुमति देगा।

गुड लक और जल्द ही मिलते हैं!

★ ★ ★ ★ ★