2011-09-23 22 views
11

तो कोई सिद्धांत 2 में किसी दिए गए इकाई के लिए उपयोग करने के लिए स्टोरेज इंजन निर्दिष्ट कैसे कर सकता है?सिद्धांत 2 में तालिका प्रकार/स्टोरेज इंजन निर्दिष्ट करें

मैं एक टेबल बना रहा हूं जिसके लिए एक पूर्ण पाठ अनुक्रमणिका की आवश्यकता है और केवल MyISAM स्टोरेज इंजन MySQL में पूर्ण पाठ अनुक्रमण का समर्थन करता है।

एक तरफ: ऐसा लगता है जैसे डॉक्टर 2 बॉक्स से बाहर पूर्ण पाठ अनुक्रमण का समर्थन नहीं करता है? न ही पूर्ण पाठ खोज? क्या वो सही है?

+1

यह संपादन स्रोत के बिना "संभव" नहीं किया जा सकता है: http://www.doctrine-project.org/jira/ब्राउज़/डीडीसी-9 72 –

+0

इसके अलावा (1.1): http: // www। doctrine-project.org/documentation/manual/1_1/zh/defining-models:indexes:special-indexes –

+0

@ जेरेड मुझे उतना ही लगा ... टिकट लिंक के लिए धन्यवाद। –

उत्तर

6

अद्यतन:

"(", विकल्प = TABLE_NAME { "इंजन" = "MyISAM"} नाम =) "@Table" जोड़कर, यह बेहतर जवाब है के बारे में टिप्पणी देखें।

======= =========== नीचे मूल

यह अपरीक्षित कोड आप एक जवाब के लिए प्राप्त करने में मदद करने के उद्देश्य से है, तो आप Doctrine2 का एक बहुत पढ़ने के लिए की आवश्यकता होगी हालांकि आप जो चाहते हैं उसे समझने के लिए कोड। मैंने कोड पढ़ने के बारे में 30 मिनट बिताए और इस डीबीएएल परत समारोह में ओआरएम परत के माध्यम से $ विकल्प सरणी को धक्का देने का कोई तरीका नहीं मिला।

जांच सिद्धांत/DBAL/प्लेटफार्म/MySQLPlatform.php

427   // get the type of the table 
428   if (isset($options['engine'])) { 
429    $optionStrings[] = 'ENGINE = ' . $options['engine']; 
430   } else { 
431    // default to innodb 
432    $optionStrings[] = 'ENGINE = InnoDB'; 
433   } 

कठिन कोडिंग की कोशिश what engine वहाँ में चाहते हैं। यह लगभग निश्चित रूप सामान हालांकि (जैसे, विदेशी कुंजी dont work in MyISAM)

+13

आप इसे '@Table (name = "table_name", विकल्प = {"इंजन" = "MyISAM"} का उपयोग करके तालिका के लिए सेट कर सकते हैं) ' –

+1

@PaulJacobse आपको इसे उत्तर के रूप में पोस्ट करना चाहिए –

1

आप doctrine2 माइग्रेशन उपयोग कर रहे हैं टूट जाएगा ..

$table = $schema->createTable('user'); 
$table->addColumn('id', 'integer'); 
$table->addOption('engine' , 'MyISAM'); 
$table->setPrimaryKey(array('id')); 
20

मैं दो साल बहुत देर हो चुकी हूँ, लेकिन यह जानते हुए भी महत्वपूर्ण है क्योंकि यह नहीं टी किसी कारण से प्रलेखित, हम इस लक्ष्य को हासिल करने के लिए संघर्ष कर रहा है, लेकिन इस समाधान

/** 
* ReportData 
* 
* @ORM\Table(name="reports_report_data",options={"engine":"MyISAM"}) 
* @ORM\Entity(repositoryClass="Jac\ReportGeneratorBundle\Entity\ReportDataRepository") 
*/ 
class ReportData 
{ 
+0

कृपया केवल पर ध्यान दें विकल्प = {"इंजन": "MyISAM"} –

+1

यह 2015 में सहायक है। यह देर से नहीं है ... – Dennis

+0

धन्यवाद !, यह नहीं पता कि यह उत्तर, अजीब क्यों नहीं है। –

संबंधित मुद्दे