##Manage
There are a number of data management commands that come with Biostar.
The biostar.sh shell command automatizes a number of commonly used tasks. Run it with no parameters to get help on a typical usage::
Usage:
$ biostar.sh <command>
Multiple commands may be used on the same line:
$ biostar.sh init import run
Commands:
init - initializes the database
run - runs the development server
index - initializes the search index
test - runs all tests
env - shows all customizable environment variables
import - imports the data fixture JSON_DATA_FIXTURE=import/default-fixture.json.gz
dump - dumps data as JSON_DATA_FIXTURE=import/default-fixture.json.gz
delete - removes the sqlite database DATABASE_NAME=biostar.db
pg_drop - drops postgres DATABASE_NAME=biostar.db
pg_create - creates postgres DATABASE_NAME=biostar.db
pg_import f.gz - imports the gzipped filename into postgres DATABASE_NAME=biostar.db
Use environment variables to customize settings. See the docs.
DJANGO_SETTINGS_MODULE=biostar.settings.base
In addition there are a number of data management commands that are implemented for the each app. Run::
python manage.py help
And look for the output for the app [server]
, these commands will look like::
[server]
biostar_pg_dump
delete_database
import_biostar1
import_mbox
initialize_site
prune_data
usermod
sqlfix
sitemap
user_crawl
test_email
test_task
patch
You can run each of these subcommands with the -h
flag to get more information on them.
There is a command line tool to perform content tagging based on a regular expression. The invocation is::
workon biostar
source live/deploy.env
python manage.py patch --tag "regexp:tag1,tag2,tag3"
Where the regular expression regexp
will be searched against the content and when found matching
tags tag1
, tag2
, tag3
will be applied. Example::
python manage.py patch --tag "gff:gff,interval"
To detect what posts would be tagged but not actually perform the tagging pass the --dry
command.
In that case only the post titles will be listed::
python manage.py patch --tag "gff:gff,interval" --dry
This command will navigate through all questions in the database.
Frequently used commands::
# Set the password for a user identified by their userid
python manage.py usermod -u 2 -p abcde
# Set the password for a user identified by their email
python manage.py usermod -e foo@bar -p abcde
# Rebuild the entire search index
python manage.py rebuild_index
# Reindex only what has changed in the last hour
python manage.py update_index --age 1
# Import 100 posts from a mbox file into biostar
python manage.py import_mbox -f filename -l 100
# Create a postgres database dump
python manage.py biostar_pg_dump
Create a space separated text file that contains the emails in the form::
master_email alias_email1 alias_email2 ...
Then run the command::
python manage.py patch --merge_users yourfile.txt
The command will move all content, votes and accounts associated with users identified by the aliases into the master email. It then deletes the alias users. The effect of this command cannot be reverted other than loading up a backup database dump.