Bagaimana cara menghapus bidang secara manual atau terprogram?


8

Saya mencoba membuat bidang, tetapi server saya ambruk di tengah jalan dengan Kesalahan Server Internal karena beberapa serangan spambot ...

Sekarang, ketika saya mencoba menambahkan bidang lagi, saya mendapatkan:

Nama yang dapat dibaca mesin sudah digunakan. Itu harus unik.

Saya kira beberapa tabel dihuni di db. Bagaimana saya bisa menghapus ini dengan mudah?


Jawaban:


27

Anda juga dapat menggunakan drush untuk menjalankan field_delete_field(). Lari saja:

drush eval 'field_delete_field("yourfield")'

1
Panggilan bagus, lebih bersih daripada berburu melalui db. Jalankan cron sesudahnya juga atau field_purge_batch ().
littledynamo

2
Ini luar biasa! FYI fungsi itu tidak sepenuhnya menghapus data. Itu menambahkan tabel db untuk setiap bidang yang namanya dimulai "field_deleted_data_". Itu mungkin hal yang baik. Tetapi orang-orang mungkin ingin menyelesaikan pekerjaan dengan menjatuhkan meja-meja itu.
Shai

1
Data untuk bidang yang dihapus dihapus selama cron berjalan. Tolong jangan jatuhkan tabel itu, karena itu bisa WSOD situs drupal Anda.
aaronbauman

4

Wow membuat bidang membutuhkan waktu 2 detik ... tetapi jika itu rusak, saya kira itu rusak.

Karena Anda tidak tahu "di mana" itu hancur pada dasarnya Anda harus mencari tabel untuk memastikan Anda membersihkan apa pun yang ada ...

  • Droptabel field_data_FIELD_THE_NAME_YOU_GAVE_ITdan field_revision_FIELD_THE_NAME_YOU_GAVE_IT.

  • Juga masuk field_configdan field_config_instancecari namekunci (dan bundlekunci) untuk bidang + bundel tempat Anda mengikat bidang bernama. Hapus entri-entri dalam 2 tabel juga.

  • Bersihkan cache situs Anda.


1
Tolong jangan lakukan ini. Lihat jawaban di bawah: field_delete_field () yang akan memanggil semua kait yang relevan dan membersihkan cache juga. Secara umum, jika Anda menulis SQL atau beroperasi langsung di database, Anda melakukan sesuatu yang salah.
aaronbauman

1
Jika penambahan bidang gagal di UI. Mengapa Anda menganggap API akan tetap berfungsi untuk menghapus data / tabel yang salah? Saya setuju dengan balasan keseluruhan Anda, saya tidak setuju dengan itu untuk 100% dari semua kasus.
Tenken

Anda benar - saya tidak benar-benar membaca pertanyaan aslinya. Salahku! Metode yang disukai adalah menggunakan field_delete_field (), tetapi jika gagal maka langsung ke database mungkin merupakan alternatif terbaik / satu-satunya.
aaronbauman
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.