Shell scripts - WikipediaLibrary/TWLight GitHub Wiki

Shell scripts

A suite of shell scripts for performing various functions can be found in the /bin folder.

These scripts can be run with, for example docker-compose exec twlight /app/bin/virtualenv_migrate.sh.

Migrating

The script virtualenv_migrate.sh will, for each TWLight app, run:

  • python manage.py createinitialrevisions
  • python manage.py makemigrations
  • python manage.py migrate
  • python manage.py sync_translation_fields

See the official documentation for more on what each of these commands does.

Testing

To test the tool, simply run the virtualenv_test.sh script. This script more or less only runs python manage.py test.

You can run a specific test using the virtualenv_testcase.sh script, providing a single argument for the test case to run, e.g. virtualenv_testcase.sh TWLight.resources.tests.

Example data

When working on TWLight locally you may want example data reflecting the live tool. The script virtualenv_example_data.sh will generate 200 users, 50 resources, and 1000 applications, with pre-filled data and relations that broadly reflect the real data.

This script can only be generated with an empty database, after you have logged in to an account you want to be made a superuser (the script looks for a single account in the database and makes it a Django superuser).

Wikimedia Foundation staff and contractors can acquire a copy of the live database for local development. For data privacy reasons this should only be used if absolutely necessary, and if deploying changes to the Staging tool wouldn't suffice.