আমি কীভাবে আপডেটগুলি পুনরায় চালিত করব (মডিউল স্কিমা সংস্করণটি পরিবর্তন করব)?


22

আমি একটি মডিউল নিয়ে কাজ করছি, এবং আমি স্কিমাতে কয়েকটি ক্ষেত্রের ধরন পরিবর্তন করেছি। আমি এটি পরীক্ষা করার আগে একটি ব্যাকআপ নিইনি এবং ডিবিতে গোলযোগ পেয়েছি (এটি কেবল একটি দেব সাইট)। যাইহোক, আমি সবকিছু পুনরায় ইনস্টল করেছি এবং স্কিমা সংস্করণটি সর্বোচ্চ আপডেটের সাথে সেট করা আছে। তবে, আমার আসলে আপডেটটি চালানো দরকার; একটি ভিউ আমি মডিউল কোডে আপডেট স্কিমা থাকলে আমি ইনস্টল করব না, তাই আমি বুঝতে পেরেছি যে আপডেটটি পরীক্ষা করার এটি একটি ভাল উপায়।

আমি কীভাবে আমার মডিউলটির স্কিমা সংস্করণটিকে একটি নির্দিষ্ট সংস্করণে পুনরায় সেট করব? ড্রুপাল 7 এ, আমি এটি করতাম:

drush sqlq "UPDATE system SET schema_version=8102 WHERE name='flllpdf' AND type='module'"

উত্তর:


47

স্টেটে সরাসরি কাজ করার সময়, আপনি কেবলমাত্র API টি ব্যবহার করতে পারেন: drupal_set_installed_schema_version () । লিঙ্কযুক্ত ডকুমেন্টেশন পৃষ্ঠায় দৃশ্যমান হিসাবে কমপক্ষে 4.7 থেকে যা আসলে অপরিবর্তিত রয়েছে। সম্ভবত এত দিন ধরে থাকা কয়েকটি API ফাংশনগুলির মধ্যে একটি;)

এটি ড্রাশ থেকে সেট করতে:

drush ev "drupal_set_installed_schema_version('fillpdf', 8012)"

দ্রষ্টব্য: ড্রুপাল 7 এ আপনাকে অতিরিক্ত যুক্ত করতে হবে include 'includes/install.inc';


5
এছাড়াও আপনার যদি সহজেই দ্রুত পরীক্ষা করা দরকার: ড্রশ ইভ "ইকো ড্রুপাল_জেট_ইনস্টলড_স্কেমা_ভার্সন ('মোডুওল')"; api.drupal.org/api/drupal/core%2121lude%21chema.inc/function/…
ben.hamelin

বা বোধহয় pm-তথ্য মডিউলটির নাম
বিয়ানলুক

10

ড্রুপাল 8 এখন keyvalueস্কিমা সংস্করণ সম্পর্কিত তথ্য সঞ্চয় করতে পরিষেবাটি ব্যবহার করে । এটি স্টেট এপিআই নিজেই ব্যবহার করে একই এপিআই ।

ডাটাবেসে সঞ্চিত থাকাকালীন মান তথ্য ক্রমিকায়িত হয়, সুতরাং সরাসরি এসকিউএল কোয়েরি ব্যবহার উপ-অনুকূল হয়। পরিবর্তে, drush php-eval(বা কোনও ড্রিপ বুটস্ট্র্যাপ করে এমন স্ক্রিপ্ট, যদি আপনার ড্রাশ না থাকে) ব্যবহার করুন:

<?php
  \Drupal::keyValue('system.schema')->set('fillpdf', (int) 8102);
?>

পরিবর্তন fillpdfএবং 8102আপনার মডিউল নামের আর কাঙ্খিত স্কিমা সংস্করণ, যথাক্রমে।

এই আদেশের ড্রশ ফর্মটি হ'ল:

drush ev "\Drupal::keyValue('system.schema')->set('fillpdf', (int) 8102)";


0

কোড (ড্রশ ছাড়াই) মাধ্যমে মডিউল আপডেটগুলি সেট এবং জেট করুন। নীচে কোড দেওয়া আছে

GET  = drupal_get_installed_schema_version('moduleName');

SET = drupal_set_installed_schema_version("moduleName", "8000");

0

এটি সরাসরি ডাটাবেসে আপডেটও করতে পারেন। আপনি যদি সিকুয়েল প্রো (ম্যাক) এর মতো কিছু ব্যবহার করেন বা ইউআই সরঞ্জাম উইন্ডোজ / লিনাক্সের যা কিছু আছে তা সত্যিই সহজ। তাত্ক্ষণিকভাবে সেরা ধারণা নয়, এবং এটি একটি উত্পাদন স্তরের ডাটাবেসের বিরুদ্ধে এটি করার পরামর্শ দেবে না, তবে এটি কাজটি শেষ করবে!

সারণী = কী_মূল্য

সংগ্রহ = system.schema
নাম = ভরাটডিডিএফ (আপনার_মডিউল)
মান = আপডেট আমি: 8102;

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