Command line interface¶
You can perform several operations from the command line using Django commands, Fleio commands and BASH scripts.
Django and Fleio commands¶
For Django and Fleio commands you need enter the Fleio utils docker container and to activate the Python virtual environment first.
Activate the virtual environment¶
Connect via SSH to the machine where Fleio is installed and run:
fleio bash9
. /var/webapps/fleio/env/bin/activate
List the Django and Fleio commands¶
To see a list of available commands just run django help
. Note that django
is a shortcut for
python manage.py
. So you get the same effect if you run python manage.py help
.
Here’s the django help
output:
$ django help
Type 'manage.py help <subcommand>' for help on a specific subcommand.
Available subcommands:
[auth]
changepassword
createsuperuser
[authtoken]
drf_create_token
[billing]
refresh_eu_tax_exempt
[contenttypes]
remove_stale_contenttypes
[core]
dbbackup
feature_enabled
fleio_edition
fleio_info
testdbconn
[django]
check
compilemessages
createcachetable
dbshell
diffsettings
dumpdata
flush
inspectdb
loaddata
makemessages
makemigrations
migrate
runserver
sendtestemail
shell
showmigrations
sqlflush
sqlmigrate
sqlsequencereset
squashmigrations
startapp
startproject
test
testserver
[django_extensions]
admin_generator
clean_pyc
clear_cache
compile_pyc
create_command
create_jobs
create_template_tags
delete_squashed_migrations
describe_form
drop_test_database
dumpscript
export_emails
find_template
generate_password
generate_secret_key
graph_models
list_model_info
list_signals
mail_debug
managestate
merge_model_instances
notes
pipchecker
print_settings
print_user_for_session
raise_test_exception
reset_db
reset_schema
runjob
runjobs
runprofileserver
runscript
runserver_plus
set_default_site
set_fake_emails
set_fake_passwords
shell_plus
show_template_tags
show_urls
sqlcreate
sqldiff
sqldsn
sync_s3
syncdata
unreferenced_files
update_permissions
validate_templates
[rest_framework]
generateschema
[sessions]
clearsessions
Django shell¶
The Django shell is a command line environment where you can run Python commands in the context of the Fleio project, that is the settings are loaded, including things like database connection settings and the Django model classes (used to interact with the database tables).
To enter the Django shell run:
fleio shell
Once you’re into the shell, you can can for instance list the Fleio users:
>>> AppUser.objects.all()
<QuerySet [<AppUser: demo2@demo2.com>, <AppUser: osuser489595>, <AppUser: demo>, <AppUser: demoadmin>]>
>>>
Just press CTRL + D to exit the Django shell or type in exit()
.
Reset admin password¶
You can change any Fleio user password from the command line, including the admin/staff user password.
Connect via SSH to the machine where Fleio is installed and activate the virtual environment.
Then run:
django changepassword <<USER NAME>>
If you can’t remember the username either, you can run a query on the Fleio database and see the list of users:
fleio mysql
MariaDB [fleio]> SELECT email FROM core_appuser;
+---------------+
| username |
+---------------+
| demo@demo.com |
| joen@doe.com |
+---------------+
2 rows in set (0.00 sec)
BASH and Python scripting¶
You can interactively browser through Fleio files or create a staff user with commands like
fleio bash
Creating fleio_utils_run ... done
fleio@utils:~/project$ ls
binaries common common_admin enduser fleio fleiodockerutils fleiostaff locale manage.py plugins requirements.txt
fleio@utils:~/project$ . ../env/bin/activate
(env) fleio@utils:~/project$ django createsuperuser
Email:
and you can run BASH commands non-interactively, directly from the host where Fleio is installed. For instance to list
the contents of you settings.py
file:
fleio bash cat /var/webapps/fleio/project/fleio/fleiosettings/settings.py
and even run django commands one-liners that also require the Python virtual environment to by activated:
# show Django version
echo ". ../env/bin/activate; django version" | fleio bash
Creating fleio_utils_run ... done
4.0.7
Database (MariaDB) console¶
You can authenticate and open the MySQL/MariaDB console with:
fleio mysql
and you can get a dump of your database with:
fleio mysqldump