Manage/Monitor IT hardware servicing lifecycle
The repository contains a total of 3 projects.
The API is responsible for handling user authentication/authorization (requested by the client app) and resource serving.
Persistent data storage is handled by postgresql.\ SQLAlchemy ORM is used for model/data handling and communication with the db.\ Database migrations are performed using alembic,
This project uses pipenv for virtual environment management. To get started with pipenv you need to install it via pip.
cd api
pip install pipenv
Then following command initializes a new virtual environemnt, that will be used for the current project,
pipenv install
To use the virtual environment we can either start a new shell inside it.
pipenv shell
Or run single commands by using the run argument
pipenv run python --version
As pipenv also offers package manager capabilities we no londer need to use pip for package installation/removal.\
pipenv install pylint
To update Pipfile.lock we can use the following command.
pipenv lock
To start a local development server of flask use the following command (always in the virtual environment)
pipenv run flask run
As stated previously, migrations are managed and executed using alembic. Any changes to models script\ should also be applied to the local instance of postgresql database by creating and executing the migration script locally.
Migration on the remote db is performed automatically as long as the new migration script has been commited
The following 3 commands are use to initialize,create and run migration scripts against the db.
pipenv run manage.py db init #Initialize db, create migration dir
pipenv run manage.py db migrate #Create a new migration script with applied changes
pipenv run manage.py db upgrade #Upgrade target db using migration script (or downgrade)
[TODO]
[TODO]