কিভাবে উত্পাদন পরিবেশে ইনস্টল করা ডেল মডিউলটি প্রতিরোধ করবেন to


26

নতুন ড্রুপাল 8 কনফিগারেশন ম্যানেজার ব্যবহার করে, আমি কীভাবে এটি নির্দিষ্ট পরিবেশে ডেভেল মডিউলটি ইনস্টল করা থেকে আটকাতে পারি? আমি যতদূর জানি, এটিকে আমার স্থানীয়ভাবে ইনস্টল করার অর্থ পরের বার যখন আমি কনফিগারেশনটি রফতানি করি এবং এটিকে আমার অন্যান্য পরিবেশে (দেব, পরীক্ষা, উত্স) এ নিয়ে যাই তা স্বয়ংক্রিয়ভাবে সক্ষম হয়ে যায়।


drushগ্রহণযোগ্য ব্যবহার করছেন ? আমি অন্য দিন সম্পর্কে জানতে পেরেছি drush config-export --skip-modules=devel। ড্র্যাশ ব্যবহার না করে অনুরূপ কিছু থাকতে পারে, তবে আমি জানি না।
mradcliffe

সুতরাং আমি কি প্রতিবারই কনফিগারটি রফতানি করব? আরও একটি ভাল উপায় থাকতে হবে: |
ক্যামব্রাকা

হতে পারে আপনি আপনার .gitignore এ কিছু কনফিগার ফাইল যুক্ত করতে পারেন।
ডিজিটালডনকি

1
এটি সম্পর্কিত: drupal.stackexchange.com/questions/185536/…
লেস লিম

2
আমি মনে করি এই প্রশ্নটি পূর্ববর্তী ক্ষেত্রে খুব বিস্তৃত। সম্ভবত অনেকগুলি ভাল উত্তর রয়েছে কারণ এটি সাইটের জন্য বিল্ড এবং বিকাশ প্রক্রিয়াটি নির্ভর করে।
ম্যারাডক্লিফ

উত্তর:


18

পদ্ধতি: মাতাল

  • কনফিগারেশন সিঙ্ক্রোনাইজ করার সময় ড্রশ এক্সটেনশনের সক্ষম রাষ্ট্রগুলিকে উপেক্ষা করতে পারে।

    drush cex --skip-modules=devel

    drush cim --skip-modules=devel

  • সঙ্গে Drush CMI সরঞ্জাম আপনি উপেক্ষা করতে কনফিগারেশনের একটি তালিকা সঙ্গে কাজ করতে পারে।

    drush cexy --ignore-list=/path/to/config-ignore.yml

    drush cimy --delete-list=/path/to/config-ignore.yml

পদ্ধতি: মডিউলগুলি

  • আপনি কনফিগারেশন স্প্লিট মডিউলটি ব্যবহার করতে পারেন যা আপনাকে এটি করতে অনুমতি দেয়:

    1. ডেডিকেটেড ফোল্ডারে কিছু কনফিগারেশন বন্ধ করুন
    2. ব্ল্যাকলিস্ট কনফিগারেশন
    3. কনফিগারেশনের একটি সেট উপেক্ষা করুন
    4. কনফিগারেশন সত্তা দ্বারা কনফিগার করা
  • কনফিগারেশন কেবল পঠন মোড মডিউল

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

    $settings['config_readonly'] = TRUE;

  • এবং অন্য মডিউলটি পরিবেশ কনফিগারেশন যা আপনাকে প্রতি পরিবেশের ভিত্তিতে কনফিগারেশন ওভাররাইড করতে দেয়।


2
আমার প্রোডাকশন সার্ভারগুলিতে ডেভেল মডিউলটির জন্য সমস্ত গ্রন্থাগার নির্ভরতা থাকা আমার পক্ষে সত্যিই পছন্দ নয়, তাই আমি এটি ব্যবহার করে সুরকারের সাথে যুক্ত করব composer require --dev drupal/devel। যুক্ত বোনাসটি হ'ল সুরকার ইনস্টলটি দ্রুত, প্রোডগুলি দ্রুত মোতায়েন করে।
ডানকানমু


6

আপডেট : নীচে বর্ণিত বৈশিষ্ট্যটি ইদানীং https://www.drupal.org/project/config_split/issues/2926505 সরানো হয়েছে


আপনি যদি আপনার স্থাপনার প্রক্রিয়াতে ড্রাশ ব্যবহার করেন তবে আপনি নিম্নলিখিতগুলি করতে পারেন:

drushrc.phpআপনার একই settings.phpউদাহরণে একটি ফাইল তৈরি করুন (উদাহরণস্বরূপ docroot/sites/default:) এবং নিম্নলিখিতগুলি রাখুন:

$drush_ignore_modules = array(
  'devel',
  'webprofiler',
  'devel_generate',
  'kint',
  'yaml_editor',
);

$command_specific['config-export']['skip-modules'] = $drush_ignore_modules;
$command_specific['config-import']['skip-modules'] = $drush_ignore_modules;

এর অর্থ, আপনি তাদের প্রক্রিয়া চলাকালীন মডিউলগুলি এড়িয়ে যাওয়ার জন্য drush cex/ drush cimআদেশগুলি ম্যানিপুলেট করতে পারেন ।

আপনি ড্রাশ 8 এ কনফিগারেশন মডিউল ফিল্টার ব্যবহার সম্পর্কে আরও পড়তে পারেন ।


5

drush cex --skip-modulesএই ইস্যুতে যেমন ব্যাখ্যা করা হয়েছে কনফিগার_স্প্লিটের পক্ষে সরানো হয়েছিল সুতরাং ড্রাশের ভিত্তিতে এখানে সমাধানগুলি আমার পক্ষে কাজ করে নি।

এখানে কনফিগার_এক্সক্লুড মডিউলটি ব্যবহার করে ডানকানমু সমাধানের ভিত্তিতে সমাধান দেওয়া হয়েছে

১. কনফিগার ব্যবহার করে কনফিগার_একটি ইনস্টল করুন - দেবে এবং কনফিগার করুন

$ composer require --dev drupal/config_exclude
$ drush en config_exclude -y
$ nano sites/default/setting.php

আপনার স্থানীয় দেব পরিবেশে সেটিংস.এফপি ব্যবহার করার অনুমতি দিন

if (file_exists($app_root . '/' . $site_path . '/settings.local.php')) {
  include $app_root . '/' . $site_path . '/settings.local.php';
}

স্থানীয় ফাইলে কনফিগার_সামগ্রী সেটিংস যুক্ত করুন

$ nano sites/default/setting.local.php

এখানে কিছু নমুনা সেটিংস

$settings['config_exclude_modules'] = [
    'devel', 
    'config_exclude',
    'config_filter',
    ...
    'stage_file_proxy',
];

দ্রষ্টব্য 1: কনফিগার_ফিল্টার একটি কনফিগার_পরিচালিত নির্ভরতা তাই আপনার যদি এটির উত্পাদন প্রয়োজন না হয় তবে আপনি এটি উপরে বাদ দিতে পারেন

NOTE2:settings.local.php প্রয়োজন নয়। এটি আপনার ভিসিএস দ্বারা নিয়ন্ত্রিত কিনা তা নির্ভর করে।

২. সুরকারের প্রয়োজন - দেবতা

নিখুঁত উন্নয়নের জন্য এমন একটি মডিউল সক্ষম করার সময় - দেবদেব পতাকাটি ব্যবহার করুন:

$ composer require --dev drupal/devel

এই নির্ভরতাগুলির ফলাফলগুলির ফলে composr.json ফাইলটিতে প্রয়োজনীয়-ডিভের অধীনে যুক্ত করা হচ্ছে:

...
    "require-dev": {
        "drupal/twig_xdebug": "^1.0",
        "drupal/devel": "^1.0@RC"
    }
}

সুতরাং আপনি যদি আপনার ডেভ মডিউলগুলি ব্যবহার করেন তবে আপনি যদি সাইটটি ইনস্টল করেন:

$ composer install --no-dev

দ্রষ্টব্য: আপনার মঞ্চায়ন এবং উন্নত পরিবেশে আপনার সর্বদা --no-dev করা উচিত

৩. আপনি সাধারনত ড্রশ সেক্স ব্যবহার করুন

$ drush cex 

বাদ দেওয়া মডিউলগুলির কোনও সেটিংস রফতানি করবে না

দ্রষ্টব্য: আমি লক্ষ্য করেছি যে কোর। এক্সটেনশন সেটিংস উপরের কমান্ডটি চালানোর পরে পরিবর্তিত হয়েছে বলে মনে হচ্ছে তবে সংশ্লিষ্ট। জিম কখনও হার্ড ড্রাইভে লিখিত হয় না (নিশ্চিত হওয়ার পরেও will be deleted and replaced with the active config) তাই কমিট করার কিছু নেই, আমার ধারণা এটি নির্ভর করে এর অভ্যন্তরীণ config_exclude মডিউল


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

2

ড্রুপাল 8.3.x এর জন্য একটি আকর্ষণীয় সমস্যা রয়েছে: বিকাশ মডিউলগুলিকে কনফিগার-এক্সপোর্ট থেকে বেরিয়ে যাওয়ার অনুমতি দিন । সাধারণ কনসেন্সাস হ'ল কনফিগারেশন স্প্লিট বর্তমানে সর্বোত্তম সমাধান।

স্বেনটেল দ্বারা মন্তব্য :

কীভাবে কনফিগার_স্প্লিট কাজ করে তা সংক্ষিপ্তভাবে ডকুমেন্ট করতে চেয়েছিলাম: কনফিগার স্প্লিট কনফিগার সত্তা ব্ল্যাকলিস্টযুক্ত যা সংজ্ঞা দেয়, আপনাকে মডিউল এবং / অথবা কনফিগার অবজেক্টগুলিকে ব্ল্যাকলিস্ট করতে দেয়। ক্যানোনিকাল উদাহরণটি হ'ল ডেভেল হওয়ার কারণে ইতিমধ্যে একটি আকর্ষণীয় ব্যবহারের ক্ষেত্রে রয়েছে: এটি system.menu.devel এর সাথে আসে যা আপনি কালো তালিকাভুক্ত করার ক্ষেত্রে মেনু কনফিগারেশন ফাইলটি সরানো হবে না কারণ কোনও নির্ভরতা নেই। এটি কোনও বড় সমস্যা না হলেও, কনফিগার বিভাজন আপনাকে পৃথকভাবে এটিও নির্বাচনের অনুমতি দেয় যাতে এটি পরিবেশে অপসারণ করা হয়।

জেরলিংগুয়ের মন্তব্য :

আমি পরিবেশ-নির্দিষ্ট কনফিগার ব্যবস্থাপনার কয়েকটি পৃথক পদ্ধতি চেষ্টা করেছি এবং কনফিগার_স্প্লিট এ পর্যন্ত সঠিক ব্যবহারযোগ্যতা বনাম অতিরিক্ত ওভারহেড ব্যালান্সকে সেরা বলে মনে করছে। এটি সহজ এবং লাইটওয়েট, তবে আমাকে নির্দিষ্ট পরিবেশে নির্দিষ্ট কনফিগারেশন চিহ্নিত করতে (এবং ব্যবহার চালিয়ে যেতে) অনুমতি দেয়।


2

কনফিগারেশন স্প্লিট কারও কারও পক্ষে কার্যকর সমাধান হতে পারে।

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

https://www.drupal.org/project/config_split


কনফিগার বিভাজনের জন্য +1, আমি সর্বদা এটি ব্যবহার করি যাতে ডেভেল এবং অন্যান্য ক্ষেত্রের মতো ক্ষেত্রের UI এবং ভিউস ইউআইয়ের মতো অন্যান্য মডিউলগুলি অক্ষরে অক্ষম থাকে। কনফিগার বিভাজন ব্যবহার করে মডিউলগুলি অক্ষম করুন দেখুন ।
লেইম্যানেক্স

2

এটি করার একটি ঝরঝরে উপায় রয়েছে, যেখানে আপনি সুবিধার জন্য সুরকারে প্রতিশ্রুতিবদ্ধ আপনার ডেভ মডিউলগুলি শেষ করেন এবং সেইগুলি মডিউলগুলির কনফিগারটি আপনার কনফিগার রফতানিতে যুক্ত হয় না (সেখানে দুটি অংশ রয়েছে):

1. সুরকারের প্রয়োজন - দেবদেব সম্পূর্ণরূপে উন্নয়নের জন্য এমন একটি মডিউল সক্ষম করার সময় - দেবদেব পতাকাটি ব্যবহার করুন:

$ composer require --dev drupal/devel

এই নির্ভরতাগুলির ফলাফলগুলির ফলে composr.json ফাইলটিতে প্রয়োজনীয়-ডিভের অধীনে যুক্ত করা হচ্ছে:

...
    "require-dev": {
        "drupal/twig_xdebug": "^1.0",
        "drupal/devel": "^1.0@RC"
    }
}

সুতরাং আপনি যদি আপনার ডেভ মডিউলগুলি ব্যতীত সাইটটি ইনস্টল করেন তবে আপনি বলবেন:

$ composer install --no-dev

এনবি: আপনার মঞ্চায়ন এবং উন্নত পরিবেশে আপনার সর্বদা --no-dev করা উচিত

২. কনফিগার_স্প্লিট মডিউলটি ব্যবহার করুন

কনফিগারেশন বিভাজন মডিউল আপনাকে কনফিগারেশন রফতানির গোষ্ঠী তৈরি করতে দেয় যা পরিবেশে সক্ষম বা অক্ষম করা যায়।

আমার কাছে আসলে 3 টি বিভাজন রয়েছে:

  1. প্রধান সাইট কনফিগারেশন (সর্বত্র সক্ষম; ডিভ এবং স্টেজিং এবং উত্পাদন)
  2. মঞ্চ কনফিগারেশন (দেব এবং মঞ্চে সক্ষম) - রিওর্ট ইমেল মডিউল অন্তর্ভুক্ত
  3. দেব কনফিগারেশনে - ডেভেল, কিন্ট ... অন্তর্ভুক্ত থাকে তবে ডেভেল স্টেজেটিং কনফিগারেশন সক্ষম হওয়ার সাথে সাথে ইমেলটি পুনরায় তৈরি করা হয় না।

1
আপনার সত্যিকার অর্থে এইভাবে ডেভ নির্ভরতা ব্যবহার করা উচিত নয়। কোড স্নিফার এর মতো এগুলি সরঞ্জামগুলির জন্য আরও বেশি যা আপনার উত্পাদন চালানোর প্রয়োজন হবে না। যদি তারা সক্ষম হয় এবং দ্রুপাল মডিউলটি ইনস্টল হওয়ার প্রত্যাশা করে এবং কোডটি সেখানে না থাকে তবে এটি সাইটের অস্থিরতার দিকে নিয়ে যেতে পারে। ড্রপাল / সুরকার এখনও কোনও ফাইল নির্ভর করে যদি ফাইল সিস্টেমের মধ্যে না থাকে তবে এটি লোড করার চেষ্টা করতে পারে।
ফ্রাঙ্ক রবার্ট অ্যান্ডারসন

@ ফ্র্যাঙ্করোবার্টএন্ডারসন আপনি কি আরও ভাল সমাধানের প্রস্তাব দিচ্ছেন না? আমি আমার প্রোডাকশন সার্ভারে ডেভেল মডিউল বা নির্ভরযোগ্য লাইব্রেরি চাই না, আপনি কী প্রস্তাব করবেন?
ডানকানমু

ড্রুপাল এর জন্য সত্যিই একটি ভাল বিকল্প সরবরাহ করে না। আপনার পরিকল্পনাটি ভয়াবহ নয়, তবে আপনি যদি সাবধান না হন তবে বিষয়গুলির দিকে নিয়ে যাবে। আপনার পরিকল্পনার সাথে আমার যে সমস্যাটি রয়েছে তা হ'ল কনফিগার_স্প্লিটটি আপনার পুরো সাইটটির পরে পিনটি হয়ে যায় pin দেব নির্ভরতা জিনিসটির জন্য না হলে আমি আপনাকে ভোট দিয়ে দেব, যা ওপি-তে কোনও প্রশ্নও ছিল না।
ফ্রাঙ্ক রবার্ট অ্যান্ডারসন

1

আমি একটি শট এ সব করতে একটি ছোট স্ক্রিপ্ট তৈরি।

#!/bin/bash

drush pm-uninstall devel -y
drush pm-uninstall field_ui -y
drush pm-uninstall field_name_prefix_remove -y

drush config-export

drush en devel -y
drush en field_ui -y
drush en field_name_prefix_remove -y

1

আপনি কনফিগার উপেক্ষা মডিউল দেখতে পারেন ।

এই মডিউলটি এমন একটি সরঞ্জাম যা আপনাকে নিজের পছন্দ মতো কনফিগারেশনটি ঠিক জায়গায় রাখতে দেয়।

এক্সপোর্ট ফোল্ডারে যে কনফিগারেশন রয়েছে তা নির্বিশেষে আপনার লাইভ সাইটে আপনি সিস্টেম.সাইটের কনফিগারেশন (যার মধ্যে সাইটগুলির নাম, স্লোগান, ইমেল ইত্যাদি রয়েছে) কোনওরকমভাবে আটকা পড়ে থাকতে চান না বলুন।

অথবা আপনি যখন কনফিগারেশনটি আমদানি করেন তখনই আপনি devel.settings পরিবর্তন করে ক্লান্ত হয়ে পড়ছেন?


কনফিগার উপেক্ষা মডিউল এই ক্ষেত্রে উপযুক্ত নয়। মডিউল পৃষ্ঠা থেকে: কোর.এক্সটেনশন কনফিগারেশনটিকে উপেক্ষা করবেন না কারণ এটি আপনাকে একটি কনফিগার আমদানি সহ নতুন মডিউল সক্ষম করতে বাধা দেবে। পরিবেশ নির্দিষ্ট মডিউলগুলির জন্য কনফিগার স্প্লিট মডিউলটি ব্যবহার করুন।
বমুনস্লো

1

আপনি এটির জন্য একটি মোতায়েন ওভাররাইড মডিউল ব্যবহার করতে পারেন। বিস্তারিত বর্ণনার জন্য নীচের লিঙ্কটি পড়ুন:

http://dcycleproject.org/blog/46/continuous-deployment-drupal-style

তবে এটির সর্বোত্তম উপায় হ'ল স্থানীয়ভাবে আপনার মডিউলটি অক্ষম করা এবং তারপরে কনফিগারেশনটি রফতানি করা।

ড্রুপাল কনফিগারেশন সেটিংসকে ওভাররাইড করার একটি উপায় সরবরাহ করে settings.phpতবে মডিউলগুলি অক্ষম / সক্ষম করার জন্য এগুলি বৈধ নয়।

থেকে default.settings.php:

/**
 * Configuration overrides.
 *  * To globally override specific configuration values for this site,
 * set them here. 
 * 
 *
 * blah..blah...blah
 *
 *  
 * There are particular configuration values that are risky to override. For
 * example, overriding the list of installed modules in 'core.extension' is not
 * supported as module install or uninstall has not occurred. Other examples
 * include field storage configuration, because it has effects on database
 * structure, and 'core.menu.static_menu_link_overrides' since this is cached in
 * a way that is not config override aware. Also, note that changing
 * configuration values in settings.php will not fire any of the configuration
 * change events.
 */
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.