ইনস্টল করতে অক্ষম… সক্রিয় কনফিগারেশনে ইতিমধ্যে বিদ্যমান


15

ড্রুপাল ৮.১-তে আমি যখন কোনও কাস্টম মডিউল বা কাস্টম বৈশিষ্ট্যটি সক্রিয় করার চেষ্টা করি যা বেসিক পৃষ্ঠায় কিছুটা পরিবর্তন করে। (ক্ষেত্রগুলি যুক্ত করুন)।

এটা সত্যিই বিরক্তিকর ...

পদক্ষেপ:

  • সম্পূর্ণভাবে ডাটাবেস সাফ করুন
  • /install.php এ যান এবং স্ট্যান্ডার্ড প্রোফাইল চয়ন করুন
  • এখন যে সাইটটি চলছে তা প্রসারিত করতে যান
  • বৈশিষ্ট্য নির্বাচন করুন - বেসিক পৃষ্ঠা

ফলাফল:

Unable to install Feature - Basic Page, core.base_field_override.node.page.promote, core.entity_form_display.node.page.default, core.entity_view_display.node.page.default, core.entity_view_display.node.page.teaser, field.field.node.page.body, node.type.page already exist in active configuration.

হ্যাঁ হ্যাঁ ... এটিই আমি করতে চাই: সেই ডিফল্ট সেটিংস পরিবর্তন করুন!

Expexted:

আমার বৈশিষ্ট্যটি ইনস্টল করতে সক্ষম হোন যা প্রাথমিক পৃষ্ঠায় কিছু পরিবর্তন করে।

আমার বৈশিষ্ট্য

বৈশিষ্ট্যগুলি মডিউলটির সাথে আমার বৈশিষ্ট্যটি এখানে তৈরি করা হয়েছে

এটি মূলত দুটি পৃষ্ঠা, ব্যানার_মেজ এবং ব্যাকগ্রাউন্ড_আইমেজটি মূল পৃষ্ঠায় যুক্ত করে

নথি পত্র:

config
    install
        core.base_field_override.node.page.changed.yml
        core.base_field_override.node.page.created.yml
        core.base_field_override.node.page.promote.yml
        core.base_field_override.node.page.status.yml
        core.base_field_override.node.page.sticky.yml
        core.base_field_override.node.page.title.yml
        core.base_field_override.node.page.uid.yml
        core.entity_form_display.node.page.default.yml
        core.entity_view_display.node.page.default.yml
        core.entity_view_display.node.page.teaser.yml
        field.field.node.page.body.yml
        field.field.node.page.field_banner_image.yml
        field.field.node.page.field_image.yml
        field.storage.node.field_banner_image.yml
        language.content_settings.node.page.yml
        node.type.page.yml
feature_basic_page.features.yml
feature_basic_page.info.yml

কেন এই সহজ জিনিস সমর্থন করা হয় না? এটা কি বাগ? আমার বৈশিষ্ট্যটি ব্যবহার করতে সক্ষম হতে আমার কী করা উচিত?


1
অ্যাক্টিভ কনফিগারেশনগুলি মুছে ফেলার জন্য ব্যবহৃত হয় ড্রুপাল ইজিইনস্টল মডিউলটি ব্যবহার করুন
কার্তিকেইঁ মণিবাসাগম

1
+1 আকর্ষণীয় মডিউল - এক নজরে মূল্যবান
কার্তিকেইয়ান

উত্তর:


24

ড্রাশ দিয়ে আপনি সম্ভবত করতে পারেন

drush config-delete module_name.settings

অভিযোগকারী কনফিগারেশনগুলি মুছতে


দ্রুপালের বিরুদ্ধে আমার মহাকাব্য যুদ্ধের সময় আমি এটিও আবিষ্কার করেছি যে আপনি সেগুলি কনফিগারেশনগুলিকে কোনও optional/ফোল্ডারে স্থানান্তর করতে পারেন it তবে আমি সমস্ত জড়িত সম্পর্কে নিশ্চিত নই ...
গিলাইম বোইস

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

+1 আপনাকে @ জিওরগোস্ককে ধন্যবাদ জানায় (2 এর 1 ম অংশ): আমার ক্ষেত্রে কাজ করার জন্য আমি এই সমাধানটি পেয়েছি: আমার ডেভ সাইটের জন্য ওয়েব ব্রাউজারে এই ত্রুটিটি দেখিয়েছিলাম: Warning: in_array() expects parameter 2 to be array, null given in lightning_layout_block_alter() (line 91 of modules/contrib/lightning_layout/lightning_layout.module).অন্য কোনও মেশিনে আমার সাইট কোড গিট উত্স এবং ডাটাবেস স্থাপন করার পরে ।
থেরোবাইওয়াক

(2 এর 2 অংশ) সুতরাং এটি সমাধান করার জন্য আমি বাজ__আউটআউটটি আনইনস্টল করে পুনরায় ইনস্টল করার চেষ্টা করেছি। drush pm-uninstall lightning_layoutকাজ করেছে কিন্তু তারপরে যখন আমি এটি পুনরায় ইনস্টল করার চেষ্টা drush en lightning_layoutকরেছি তখন এই কমান্ড লাইনের ত্রুটিটি পেয়েছি "PreExistingConfigException.php লাইন 65: কনফিগারেশন অবজেক্টস (ফিল্ড। স্টোরেজ.নেড.প্যানেলাইজার) ইতিমধ্যে সক্রিয় কনফিগারেশনে বিদ্যমান" সুতরাং আমি আপনার ব্যবহার করেছি এইভাবে সমাধান: drush config-delete field.storage.node.panelizer এবং তারপরে মডিউলটি পুনরায় সক্ষম করতে সক্ষম হয়েছিল:drush en lightning_layout
থ্রোবায়ুয়ান

1
আপনার কী "সেটিংস" মুছতে হবে তা আপনি যদি নিশ্চিত না হন তবে কনফিগারেশনের সঠিক নাম পেতে আপনার "ড্রাশ কনফিগারেশন-তালিকা" চালানো উচিত
জর্জি ভালভার্ট

3

এই জিনিসটি সমর্থিত নয় কারণ একটি মডিউল ইনস্টল কনফিগারেশনের সাথে ইতিমধ্যে বিদ্যমান একটি কনফিগার সত্তা প্রতিস্থাপন করতে পারে না।

ইতিমধ্যে বিদ্যমান নোড প্রকারের জন্য ফর্ম যুক্ত করতে এবং মোড কনফিগারেশনগুলি দেখতে, আপনাকে এই কোডটি হুক_ইনস্টল () এ প্রয়োগ করতে হবে।

অথবা আপনাকে প্রথমে আপনার সাইটে নোড টাইপ মুছতে হবে তবে তারপরে আপনাকে সামগ্রীটিও মুছতে হবে।

এবং না, এটি কোনও বাগ নয়, এটি কনফিগারেশনের ক্ষতি রোধ করার জন্য এটি সংজ্ঞায়িত করা হয়।


এটা খুবই দুঃখের. ডি 7-এ এটি সম্ভব ছিল (কোনও বৈশিষ্ট্যের মাধ্যমে একটি মৌলিক পৃষ্ঠায় ক্ষেত্রগুলি যুক্ত করুন)। আমি এখনও মনে করি এটি ডি 8 এও হওয়া উচিত। আপনি বলেছেন এটি কনফিগারেশনের ক্ষতি রোধ করার জন্য, তবে বাস্তবে এটি কনফিগারেশনগুলি (ক্ষেত্র, ওজন, লেবেল ইত্যাদি) যুক্ত করে। নোট করুন যে আমার নিজস্ব কাস্টম মডিউলগুলির সাথেও আমার এই সমস্যা ছিল।
গিলিয়াম বোইস

না, এটি কেবল যুক্ত করে না। ভিউ এবং ফর্ম প্রদর্শনগুলি একটি একক নোড প্রকারের সমস্ত ক্ষেত্রে ভাগ করা হয়। দুটি মডিউল যদি ফাইলটি যুক্ত করার চেষ্টা করে তবে কী হবে? ইতিমধ্যে পৃষ্ঠার ধরণের বিদ্যমান ক্ষেত্রগুলি সম্পর্কে কী ঘটে? বেসিক নোড টাইপটি যদি আপনার ক্ষেত্রের চেয়ে আলাদা সেটিংসের সাথে বিদ্যমান তবে কী হবে? এর মতো আচরণের পরিস্থিতি সংজ্ঞায়িত হয় না। একটি স্বতন্ত্র বৈশিষ্ট্যের জন্য, আপনি নিজের নোড প্রকারটি সংজ্ঞায়িত করা এবং আপনার নিজের সাইটে এই পরিবর্তনটি স্থাপন করা ভাল, আপনার 7.x এর মতো কোনও বৈশিষ্ট্য মডিউল দরকার নেই, আপনি কেবল কনফিগারেশনটি রফতানি করতে পারেন এবং এটি আবার আমদানি করতে পারেন।
বারদির

@ বার্ডির এটি অত্যন্ত আকর্ষণীয়। সুতরাং আমি এই সমস্যাটি থেকে এমন একটি ব্যবহারকারী প্রোফাইল বৈশিষ্ট্য তৈরি করার চেষ্টা থেকে আসছি যা দেখতে এবং ফর্ম নোটগুলি অন্তর্ভুক্ত করে। সুতরাং আপনি কি বলছেন যে এটি বৈশিষ্ট্যগুলিতে করা যায় না কারণ ব্যবহারকারীর সামগ্রীর ধরণটি ইতিমধ্যে বিদ্যমান থাকবে এবং বৈশিষ্ট্যটি এটি সক্ষম করার চেষ্টা করছে? কোনও বৈশিষ্ট্যটিকে এটিকে ওভাররাইড করার অনুমতি দেওয়ার কোনও উপায় আছে যাতে ইতিমধ্যে বিদ্যমান সাইটে কেউ একটি প্রোফাইল বৈশিষ্ট্য সক্ষম করতে পারে?
কালেম ক্লার্কসন

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

3

মডিউল পাওয়া গেছে, ডিভেল বা ড্রাশ ব্যবহার না করে সক্রিয় কনফিগারেশনকে সাফ করার জন্য ইজি ইনস্টল মডিউলটি ব্যবহার করুন । এমনকি আপনার মডিউলের কনফিগারেশন ফাইলগুলিতে yচ্ছিক ফোল্ডার এবং প্রয়োগকৃত বিকল্পটি বাদ দেওয়া সত্ত্বেও এটি কাজ করে ( yML )


1
এটি একটি দুর্দান্ত বিকল্প! আমি আজই এটি ব্যবহার করেছি এবং এটি আমার অনেক সময় বাঁচিয়েছে!
rtd1123

3

পান্থিয়ান সাইটের জন্য আমার একই সমস্যা আছে। আমি ড্রাশ কমান্ড প্রবেশ করলাম

পান্থোনসাইট: ড্রাশ @ পান্থিয়ন heSITENAME.ENVNAME ERRORNAME কে কনফিগার করুন

লোকালসাইট: ড্রাশ কনফিগার-মোছা ERRORNAME

এটা আমার জন্য কাজ


1

সঙ্গে drush enএটি কাজ করে!

[profile_test]$ drush en feature_basic_page -y
The following extensions will be enabled: feature_basic_page
Do you really want to continue? (y/n): y    
feature_basic_page was enabled successfully.   [ok]

সম্পাদনা: এখন আরও একটি ভাল সমাধান আছে, দেখুন: সক্রিয় কনফিগারেশন থেকে আমি একটি কনফিগারেশন অবজেক্টটি কীভাবে সরিয়ে দেব?


0

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

আপনার কাস্টম মডিউলটিতে একটি নতুন ফোল্ডার যুক্ত করুন, / কনফিগার / হুক_ইনস্টল এবং আপনার ফোল্ডারে আপনার কনফিগার। জিল ফাইলগুলি যুক্ত করুন, তারপরে আপনার মডিউলের হুক_ইনস্টল।

use Drupal\Component\Serialization\Yaml;

/**
 * Implements hook_install().
 */
function mymodule_install() {

  // Replace these configs.  We're using code to do this, as they are already
  // installed.
  $config_files = [
    'language.types',
    'language.negotiation',
  ];

  foreach ($config_files as $config_id) {
    $raw_data = file_get_contents(drupal_get_path('module', 'mymodule') . '/config/hook_install/' . $config_id . '.yml');
    \Drupal::configFactory()->getEditable($config_id)
      ->setData(Yaml::decode($raw_data))
      ->save();
  }
}
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.