হুক_সেমিমা () এ কীভাবে একটি মাইএসকিএল তারিখ বা ডেটটাইম ফিল্ডটি সঠিকভাবে প্রয়োগ করা যায়?


13

আমি একটি mymodule.install ফাইল লিখেছি যা আমার ডাটাবেসে একটি টেবিল তৈরির জন্য স্কিমা সংজ্ঞা ধারণ করে। এই সারণীতে দুটি ডেটা ক্ষেত্র রয়েছে। থিজ ক্ষেত্রগুলি ব্যবহারকারীরা যখন নির্দিষ্ট বিষয়বস্তু পূরণ করবে (উদাহরণস্বরূপ: কোনও খবরের জন্য প্রকাশের তারিখ নির্দিষ্ট করে) তখন তাদের দ্বারা জনসমাগম হবে। এখন আমি তারিখে অবদানের তারিখটি মডিউলটি উদ্দেশ্য হিসাবে ব্যবহার করি নি, কারণ আমার প্রয়োজন ছিল যে অন্যান্য কারণে ক্ষেত্রগুলি অন্য কারণে ডেটাবেস টেবিলের একই সারিতে ছিল।

হুক_স্কেমা দুটি ক্ষেত্রকে এভাবে परिभाषित করে:

'pubblish_date' => array(
    'description' => t('The pubblish date for the single news'),
    'mysql_type' => 'datetime',
    'not null' => FALSE,
  ),
  'unpublish_date' => array(
    'description' => t('The unpublish date for the single news'),
    'mysql_type' => 'datetime',
    'not null' => FALSE,
  ),

টেবিলটি ডেটাবেজে সঠিকভাবে তৈরি করা হয়েছে, তবে আমি সর্বদা আপনার পরামর্শের বার্তা পাই:

ফিল্ড নিউজ_বোর্ড.পুব্লিশ_ তারিখ: মাইএসকিএল টাইপের ডেটটাইমের জন্য কোনও স্কিমা টাইপ নেই। ক্ষেত্রের নিউজ_বোর্ড.অনুপ্রকাশিত তারিখ: মাইএসকিএল টাইপের ডেটটাইমের জন্য কোনও স্কিমা টাইপ নেই। নিউজ_বোর্ড.পব্লিব্লিশ_ তারিখ: স্কিমার ধরণের জন্য কোনও প্রকার নেই: সাধারণ। ফিল্ড নিউজ_বোর্ড.পুব্লিশ_ তারিখ: টাইপের জন্য কোনও স্কিমার ধরণ নেই। নিউজ_বোর্ড.অনুপ্রকাশিত: তারিখ: স্কিমার ধরণের জন্য কোনও প্রকার নেই: সাধারণ। ক্ষেত্রের নিউজ_বোর্ড.অনুপ্রকাশিত: তারিখ: টাইপের জন্য কোনও স্কিমার ধরণ নেই।

আমার কাছে অদ্ভুত লাগছে কারণ আমি ডকুমেন্টেশনগুলিতে মাইএসকিএল ডেটাবেজে ডেটটাইম ফর্ম্যাটটি সঞ্চয় করতে mysql_type স্পেসিফিকেশন ব্যবহার করেছি।

আমি জানি যে দ্রুপাল স্থানীয়ভাবে টাইমস্ট্যাম্পগুলি সমর্থন করে এবং আপনি যদি কোনও পৃথক তারিখের ফর্ম্যাট সংরক্ষণ করতে চান তবে আপনি ইউয়েও যে ডাটাবেসটি ব্যবহার করছেন তা অনুসারে mysql_type বা pgsql_type এর মতো নির্দিষ্ট সংজ্ঞা ব্যবহার করতে হবে।

আলোচনায় আমি অনলাইনে প্রচুর লোকেরা mysql_type সংজ্ঞা ব্যবহার করেছি এবং যা দেখেছি তারা সমস্যার সমাধান করেছে, তা কেন এটি আমার পক্ষে কার্যকর হয় না?

অনেক ধন্যবাদ.

উত্তর:


12

varcharডাটাবেসটি mysql না হওয়ার ক্ষেত্রে আপনার ফ্যালব্যাক প্রকার ( ) সরবরাহ করা উচিত ।

'pubblish_date' => array(
  'description' => t('The pubblish date for the single news'),
  'type' => 'varchar',
  'mysql_type' => 'datetime',
  'not null' => FALSE,
),
'unpublish_date' => array(
  'description' => t('The unpublish date for the single news'),
  'type' => 'varchar',
  'mysql_type' => 'datetime',
  'not null' => FALSE,
),

তবে আপনি যে বার্তাগুলি দেখছেন সেগুলি স্কিমা মডিউল থেকে এসেছে । এই সমস্যাটি ইতিমধ্যে # 468644 ইস্যু হিসাবে রেকর্ড করা হয়েছে

আপনার স্কিমাতে মাইএসকিএল ডেটটাইম বাস্তবায়ন ঠিক আছে। আপনি এই বার্তাগুলি নিরাপদে উপেক্ষা করতে পারেন। আমি বলব যে এই "পরামর্শ বার্তাগুলি" স্কিমা মডিউলে একটি বাগের কারণে ঘটে।


হাই জিজল, উত্তরের জন্য আপনাকে ধন্যবাদ। আমি ঠিক আপনার প্রস্তাবিত পরিবর্তনটি করেছি এবং হ্যাঁ, এটি ডাটাবেসে সারণী তৈরি করে তবে আমি এই অ্যাডভাইসগুলি পেয়েছি: •Field news_board.pubblish_date: no Schema type for mysql type datetime. •Field news_board.unpublish_date: no Schema type for mysql type datetime.
মার্কো

হ্যাঁ আমি জানি, আমি এটি অক্ষম করেছি এবং আনইনস্টল করেছি তবে ফলাফলটি একই। আমি যে মূল সংস্করণটি ব্যবহার করছি তা হ'ল 7.22। আমি উল্লেখ করতে চাই যে আমার কাছে স্কিমা মডিউলও ইনস্টল রয়েছে। আমি এই মডিউলটি দিয়ে ডাটাবেসের স্কিমা পরিদর্শন করার চেষ্টা করার সময় উল্লিখিত পরামর্শগুলি উপস্থিত হয়। সত্যিই আমি এডমিন ইন্টারফেসের অন্যান্য অংশে তারা অ্যাপস লাগিয়ে দেওয়ার চেষ্টা করিনি। আমি আরও ভাবছি যে এই মুহুর্তে আমি এই বার্তাগুলি উপেক্ষা করে মডিউলটি চালিয়ে যেতে পারি কিনা। আমি জানি না এটি নিজেই মডিউলটির কার্যকারিতা প্রভাবিত করবে কিনা।
মার্কো

ঠিক আছে, আপনার সময় গিসলের জন্য আপনাকে অনেক ধন্যবাদ, আপনি আমার অনেক সঞ্চয় করেছেন!
মার্কো

0

আপনার যদি কোনও রেকর্ড টাইপ ব্যবহার করতে হয় যা অফিশিয়ালি সমর্থিত ধরণের তালিকার অন্তর্ভুক্ত নয় তবে আপনি প্রতিটি ডাটাবেস ব্যাকএন্ডের জন্য একটি প্রকার নির্দিষ্ট করতে পারেন।

এই ক্ষেত্রে, আপনি টাইপ প্যারামিটারটি ছেড়ে দিতে পারেন, তবে আপনাকে পরামর্শ দেওয়া উচিত যে আপনার স্কিমা ব্যাকেন্ডগুলিতে লোড করতে ব্যর্থ হবে যেগুলি নির্দিষ্ট নেই। একটি সম্ভাব্য সমাধান হ'ল "পাঠ্য" প্রকারটি ফ্যালব্যাক হিসাবে ব্যবহার করা যায়। ( https://api.drupal.org/api/drupal/core%21lib%21Drupal%21 কোর ৯১১ ডেটাবেস ১০২১ ডেটাবেস.অপি.এফপি / গ্রুপ / স্কেমাপি / ৮.২.x )

'submit_date' => array( 'type' => 'varchar', 'mysql_type' => 'datet', )

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.