Skip to content

Technical: Deployment

Ethan-Strominger edited this page Nov 19, 2023 · 38 revisions

Prerequisites

Tools

  • Installed Git, Python, Postgres, Python IDE (pycharm or vscode recommended), Postgres IDE (for example, DBVisualizer)

Knowledge

=================================================================

Knowledgebase / BOP Catalog Setup

First Time Set up:

  1. If using your account
    • Fork repository in github
    • Clone fork
  2. If you have maintain privileges for this repo, just clone this repo directly

Since you started the server in the previous step, you can skip the next section.

Start Docker

From the terminal, type:

docker build -t kb-web-image . # this only needs to be done once
docker-compose up

Windows Users ( This only needs to be done once )

After docker-compose up, you might get ./start-docker.sh: no such file or directory. To avoid issues with Git line endings, disable Git EOL conversion before running the Docker script.
From the bash terminal, type:

git config --global core.autocrlf false
git add --renormalize .

Manually Running Python or Django

If you need to open the terminal to try some Django or Python commands:

Open terminal in Docker for django-hfla-web Run

cd django_root
source ./activate.sh

Running Locally

Docker is the preferred method for starting. If Docker is not working or you have some other reason to run it locally:

  1. Start Postgres
  2. From terminal:
cd django_root
source ./start-dev.sh

Modifying Schema

  1. Modify models.py and admin.py. Look for "tool" for example of code to add. DO NOT MODIFY 0001_initial.py. The scripts in the directory for this file are autogenerated when makemigrations is run.
  2. Kill server started with ./start-dev.sh
  3. ./start-dev.sh will automatically run makemigrations and migrate.

Regenerating Migration Scripts

This would only be done if the development team wants fewer migration scripts to make it easier to read.

  1. Drop all tables under public schema
  2. Remove django_kp_app/migrations directory using gui or with command rm -rf django_kb_app/migrations
  3. Starting Docker (or running ./start-dev.sh locally) will automatically regenerate migrate scripts.
  4. localhost:8000/admin
  5. Log in with admin for username and password
  6. Populate Gdoc table, set Google ID to 1rGLToDtbpnhKtkIcdcVQA3N3hWbyKFEs_BUmuD90VaE