sysmerge IT

13 мар. 2018 г.

ISPManager 5: domain already exists. Удаление домена из sqlite db

Бывает такая неприятная вещь при работе с Ispmanager5, что удалив домен из панели внезапно указывается, что назад он уже не добавляется, потому что уже существует. Существует он в базе данных sqlite, где хранит все данные ispmanager, откуда, вероятно, по какой-то причине не смог удалиться. В нашем случае случилось так, что половина доменов была настроена на дочерних днс, настройки всего это добра были сделаны вручную через конфиг named, в результате эти доменные имена в самой панели не отображались и при удалении www-домена запись о DNS домене так и осталась в bd. Давайте удалим.
Заходим в нужную бд

sqlite3 /usr/local/mgr5/etc/ispmgr.db
Смотрим, что за таблицы у нас имеются:

sqlite> .tables
aps                     email_forward           phpparam_available   
aps_assign              email_notify_settings   preset               
aps_entry               email_options           preset_props         
backup_queue            email_responder         props                
core_blacklist          email_whitelist         slave_ns             
core_funcs              emaildomain             sociallink           
core_members            emaildomain_options     socialrequest        
core_restorepasswd      emaildomain_props       source               
core_slaveserver        emailfilter             sslcert_csr          
core_users              ftp_users               totp                 
core_usrparam           geoip_country           userprops            
db_assign               geoip_locale            users                
db_configassign         global_index            usrquota             
db_mysql_servers        grpquota                webdisk_settings     
db_server               history_users           webdomain            
db_users_password       ispfeatures             webdomain_access_dir 
docker_container        isppackages             webdomain_access_users
dockerprops             isppkginfo              webdomain_alias      
domain                  letsencrypt_log         webdomain_error      
domain_auto             letsencrypt_ssl         webdomain_ipaddr     
email                   mfilteraction           webdomain_redirect   
email_alias             mfiltercond          
email_blacklist         mfiltercondvals

Нас интересует таблица webdomain и domain. Там соответственно хранятся записи о www-доменах и dns доменах. Проверим, правда ли домена нет в "www-домены":

sqlite> Select * from webdomain where name like '%domain%';
Таки нет.
Проверим теперь наличие его в "доменных именах":

sqlite> Select * from domain where name like '%domain%';
24|domain.ru|domain.ru||slave
А вот и он, родимый, который мешает передобавить.
Его id нам известен, осталось удалить:
sqlite> delete from domain where id like 24;
Теперь домен можно передобавлять