Create
cancel
Showing results for 
Search instead for 
Did you mean: 
Sign up Log in

Deleting projects is slow

Pascal Robert May 23, 2019

Hi,

I wrote a Groovy script that delete all projects, except the ones who are in an exclusion list (to build a sandbox).

Tried it on my local Jira installation, works fine. But on our staging server, which have more than 1500 projects, it's slow as hell. Deleting projects with projectService.deleteProject takes a minute per project!

Tried to find why, and saw this:

https://shaakunthala.wordpress.com/2016/03/27/jira-bulk-delete-issues-using-groovy/

Which have a similar script, but the author mentions that he delete the indices before deleting the projects. Tried that, sadly it's still very slow (20 deleted projects in 10 minutes). 

I guess deleting projects directly in the bd, while Jira is down of course, will be faster, but I'm pretty sure it will create havoc.

Anyone have seen this problem.

1 comment

Nic Brough -Adaptavist-
Community Leader
Community Leader
Community Leaders are connectors, ambassadors, and mentors. On the online community, they serve as thought leaders, product experts, and moderators.
May 25, 2019

Unfortunately, that link gives you bad advice.  Deleting the index will make the process slower, because when the issue is deleted, Jira still does the re-index on the issue, and then has to spend even longer writing out errors about missing the index.  And then you have to re-index the entire system after deletion.  Oh, and you're damaging your data - some parts of the delete use the index to cross-check other things that need to be deleted.

Deleting an issue is quite a complex thing to do.  Issue data is smeared across many many tables in the database, and there's a lot to check and remove.  I strongly recommend NEVER doing a delete via SQL, it will take you weeks to work out what the absolutely correct SQL is, while Jira is offline, and still leave you with a nagging doubt that you've missed something (and you'll also have to do a full re-index afterwards).  As you say - "havoc".

Using projectService.deleteProject is the safest way to delete the projects.  It is not quick, and although I suspect it could be done better, it still wouldn't be fast.  It is safe though.

Pascal Robert May 27, 2019

True. I did a test with deleting the index before deleting the projects, and also without deleting the index, and the difference is minimal. 

For the record, it took about 16 hours to delete 1085 projects.

Comment

Log in or Sign up to comment
TAGS
AUG Leaders

Atlassian Community Events