Opened 15 years ago

Last modified 15 years ago

#31 closed defect (FIXED)

Tool to create a tarball of the current environment (database, media files, etc)

Reported by: Christopher Allan Webber Owned by: joar
Priority: minor Milestone: 0.0.5
Component: programming Keywords:
Cc: Parent Tickets:

Description

It would be great if we had a tool that could do something like:

./bin/gmg environment_tarball mediagoblin.ini tarball_name.tar.gz

That contained something like:

./mediagoblin_db.json
./public_store/ # all public store files kept here
./queue_store/ # all queue store files kept here

Change History (12)

comment:1 by Christopher Allan Webber, 15 years ago

I guess it would also be nice to have:

./bin/gmg load_environment_tarball mediagoblin.ini tarball_name.tar.gz

which does the opposite: it sucks up all the info from that tarball and installs it in place. Having these tools would make developing a lot easier I think :)

comment:2 by Aaron Williamson, 15 years ago

Right now, the easiest way to back up the databases is with mongodump, which exports bson (binary json). To export all of the relevant databases:

mongodump --db mediagoblin --out /path/to/dump/to/
mongodump --db kombu_default --out /path/to/dump/to/

These can then be restored using mongorestore

To get ASCII json instead of bson, you have to use mongoexport. mongoexport requires you to specify a collection (table) to export -- you can't just export an entire mongo db as json (see the relevant feature request). Example usage (export the "media_entries" collection from the "mediagoblin" database:

mongoexport -d mediagoblin -c media_entries

comment:3 by Will Kahn-Greene, 15 years ago

Component: Infrastructure
Milestone: 0.0.3
Owner: set to Will Kahn-Greene

Grabbing this one to implement whatever is missing for allowing a hacker-type person to backup and restore a single user's stuff from the command line.

comment:4 by Elrond, 15 years ago

Component: InfrastructureProgramming

This is coding, or maybe documentation later. Definitely not infrastructure.

comment:5 by Will Kahn-Greene, 15 years ago

I was thinking this was infrastructure because it's part of the administration scripts and build environment stuff. I guess I don't understand the categories.

comment:6 by Elrond, 15 years ago

Milestone: 0.0.30.0.4

comment:6 by Caleb Davis, 15 years ago

I would like to use the 'import' side of this feature to load test data during index unit testing, so I added that this feature blocks #432. My thinking is, if we had good test data we could assert limits on how long queries should take using explain().

comment:7 by Will Kahn-Greene, 15 years ago

Milestone: 0.0.40.0.5

I can't get to this for 0.0.4, so I want to push it off to 0.0.5.

comment:8 by joar, 15 years ago

Owner: changed from Will Kahn-Greene to Joar Wandborg

Muhahah

comment:9 by joar, 15 years ago

Owner: changed from Joar Wandborg to Christopher Webber
Status: NewFeedback

comment:10 by Christopher Allan Webber, 15 years ago

Owner: changed from Christopher Webber to Joar Wandborg
Status: FeedbackClosed

Made a few changes. You can now not have to provide the cache_dir to the command line, and instead of using /tmp/mediagoblin/ it'll make a new temporary directory using the tempfile module.

Tried it locally... worked great! :) Merged and pushed.

Thanks so much Joar... this is an awesome and much needed feature!

comment:11 by Will Kahn-Greene, 14 years ago

The original url for this bug was http://bugs.foocorp.net/issues/298 .
Relations:
#142: blocks, #55: blocks

Note: See TracTickets for help on using tickets.