ฉันกำลังแนะนำการกำหนดค่าใหม่ให้กับเอนทิตีใน Drupal ที่เพิ่มฟิลด์บูลีนใหม่สองสามฟิลด์ ปัญหาคือ แม้ว่าฉันจะตั้งค่าเริ่มต้นเป็น TRUE ใน UI แต่นี่เป็นเพียงสำหรับเอนทิตีใหม่เท่านั้น เอนทิตีที่มีอยู่จะไม่มีค่าหรือเป็นเท็จเมื่อประเมินเป็นรหัส
ฉันต้องการสคริปต์การเปลี่ยนแปลงที่จะเริ่มต้นเอนทิตีที่มีอยู่ทั้งหมดเป็น TRUE เมื่อมีการแนะนำการกำหนดค่าสำหรับความเข้ากันได้แบบย้อนหลัง และเรียกใช้เพียงครั้งเดียวเท่านั้น
สคริปต์การปรับใช้ทั่วไปแนะนำให้เรียกใช้ updb ก่อน cim ด้วย Drush สิ่งนี้สร้างความขัดแย้งเมื่อพยายามทำสิ่งนี้
ตัวอย่างสคริปต์การปรับใช้ Pantheon:
ถ้า (isset($_ENV['PANTHEON_ENVIRONMENT'])) {
$สถานะ = 0;
$config_directory = dirname(__FILE__) '/config/default';
passthru("drush updb --yes", $สถานะ);
passthru("drush cim --yes", $สถานะ);
passthru("drush cim --yes", $สถานะ);
passthru("drush cim --yes", $สถานะ);
passthru("drush updb --yes", $สถานะ);
passthru("drush cr", $สถานะ);
ถ้า (สถานะ $ == 0) {
echo('นำเข้าการกำหนดค่าและอัพเดทฐานข้อมูลแล้ว' . "\n");
} อื่น {
echo('ไม่ได้นำเข้าคอนฟิกูเรชัน / ฐานข้อมูลไม่อัพเดต คำสั่ง Drush ส่งกลับข้อผิดพลาด' . "\n");
}
}
มีวิธีที่ดีกว่าในการเปลี่ยนแปลงเช่นนี้ซึ่งทำงานเพียงครั้งเดียวโดยไม่ทำให้สคริปต์อย่างข้างต้นล้มเหลวหรือไม่