Introduc o nouă configurație pentru o entitate din Drupal care adaugă câteva câmpuri booleene noi. Problema este că, deși am setat valoarea implicită ca TRUE în UI, aceasta este doar pentru entitățile noi. Entitățile existente nu vor avea valoare sau false atunci când sunt evaluate în cod.
Aș dori să scriu o modificare în care toate entitățile existente sunt implicite la TRUE atunci când configurația este introdusă pentru compatibilitate inversă și o rulează doar o singură dată.
Scripturile de implementare tipice recomandă să rulați updb mai întâi înainte de cim cu Drush. Acest lucru creează un conflict atunci când încercați acest lucru.
Exemplu de script de implementare Pantheon:
dacă (isset($_ENV['PANTHEON_ENVIRONMENT'])) {
$status = 0;
$config_directory = dirname(__FILE__) . '/config/default';
passthru("drush updb --yes", $status);
passthru("drush cim --yes", $status);
passthru("drush cim --yes", $status);
passthru("drush cim --yes", $status);
passthru("drush updb --yes", $status);
passthru("drush cr", $status);
dacă ($status == 0) {
echo('Configurație importată și baza de date actualizată.' . "\n");
} altfel {
echo('Configurația nu a fost importată / baza de date nu a fost actualizată. Comanda Drush a returnat o eroare.' . "\n");
}
}
Există o modalitate mai bună de a face modificări ca aceasta, care rulează o singură dată, fără a provoca eșecul scriptului ca cel de mai sus?