This question already has an answer here:

How can I extract my content from the database? My specific use case is to be able to migrate my content out of Drupal to do a 100% clean re-installation and then restore all my original content, but just in general, it seems to be a huge gap in the design of a content management system that I can put content in to be managed, but I can't get it back out again.

I understand that there are a myriad of variables in this use case such as module-specific tables that may contain some of my content. I'm asking about the base case without regard to those individual considerations. I would like to start simple; I can address additional, specific factors as they come up.

In searching online, I've only found workarounds to this issue. I'm not asking about workarounds (eg. the Features module) or ways to do something else that is similar to my question. Is it possible to extract my content from the database--at the very least, for the purpose of reloading it into a new, identical installation.

Put another way: in a vanilla installation, in what tables is the content stored?

marked as duplicate by Mołot, kiamlaluno Feb 17 '14 at 22:04

This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.

  • Depends on what you meant by "content". Look for node table and field_data_body tables. Migrate module can handle D2D data transfers really well. – AyeshK Feb 17 '14 at 19:45
  • That's a fair point. To me, "content" is what I put into the system. If I start from scratch and re-create an installation (same modules, config, etc.), the only thing missing would be my "content". Question: is that the same point of view held by Drupal? Does the system think of "content" the same way? – Allen Feb 17 '14 at 20:03
  • This is indeed a duplicate; thanks for the link. I will wait for Drupal 8 with bated breath. – Allen Feb 17 '14 at 20:35

There's almost certainly no such thing as "no individual considerations" on Drupal sites.

Even on a Drupal 7 site with no contributed or custom modules, this isn't easy to do. You might have many content types, with all their fields and associated configuration.

Some tables you'll need to look at are node, node_type, node_revision, field_data_*, field_revision_*, maybe taxonomy_*, maybe others.

Migrate module, Feeds module, and others can help with this too, as Ayesh mentioned.

  • That's a fair point, too. In searching online, I've found mostly similar answers that, no offense, boil down to "It's too hard, don't try to understand this". Rather than run away, I'd like to try to pull this apart and analyze it. (perhaps this should be a wiki?) For example: for custom content types, is it not possible to identify/describe where the "content" is stored? – Allen Feb 17 '14 at 20:25
  • It's totally possible to determine where everything is stored - just look at those tables. And if you're only talking about wanting to move content from an existing site into a clean install of Drupal with no content at all, I'd say that's totally doable. You still have to deal with migrating your content types and whatnot (I'd use Features for this), but once that's done, you could write a Migrate class or get a SQL dump to populate the relevant tables. It's hard to do this in a generalizable way, especially if the site you're dumping into might have its own content. – chellman Feb 18 '14 at 20:45

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