I need to split a taxonomy vocabulary into two different vocabularies in Drupal 7.

I can use the Taxonomy Manager module to move terms from one vocabulary to another; I have tested this and it works.

However, the big problem is that I have a large number of nodes with a taxonomy term reference field that include references to the terms.

This is what it looks like now: Nodes of Content Type X have a Taxonomy term reference (multiple values permitted) to Vocabulary A.

This is what I want to do.

  1. Split Vocabulary A into Vocabulary B and Vocabulary A (which contains about half the terms). [This step can be done with Taxonomy Manager.]

  2. Create a new term reference field to Vocabulary B. [This can be done from the Field UI.]

  3. Move the term references to terms that are now in Vocabulary B in the Term reference to Vocabulary A to the new term reference for Vocabulary B. [No idea how to do this except a lot of manual work.]

Any ideas about how to go about step 3?

3 Answers 3


This tutorial suggests doing it via directly performing SQL queries to change the associated vocabularies for the terms in question.

The term reference fields should be by term ID. The term ID should not be changing, only the vocabulary value associated with the term entity.

  • Although I ultimately didn't take this approach, I'm accepting this answer because for most cases I think it is the better approach compared to the one I took. Jul 9, 2013 at 16:17

Did you try to move term to new vocabulary with Taxonomy Manager (with double tree)? Term references are to TID , when you move terms to another vocabulary TIDs are saved and are the same. So i think that this will work


I tried SQL queries, but in this case it turned out to be simpler to make a table using Views showing all content of type X and then listing the terms in Vocabulary A, checking for the terms that should be in Vocabulary B, and then opening a bunch of browser tabs and editing them manually.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.