Build the container:
docker-compose build
Up the container:
docker-compose up
Setup your database by creating your first revision, you may need to add some missing imports:
docker-compose exec app sh
alembic revision --autogenerate -m "first revision"
Then apply it:
docker-compose exec app sh
alembic upgrade head
The container is ready at http://localhost
- ALLOWED_HOSTS
- DATABASE_URL
- DEBUG
- SECRET_KEY
- EMAIL_HOST
- EMAIL_PORT
- EMAIL_DEFAULT_FROM_ADDRESS
- EMAIL_DEFAULT_FROM_NAME
- EMAIL_USERNAME
- EMAIL_PASSWORD
- AWS_ACCESS_KEY_ID
- AWS_SECRET_ACCESS_KEY
- AWS_BUCKET
- AWS_REGION
- SENTRY_DSN
Sorts imports, removes unused variables, max line length etc
docker-compose exec app ./scripts/lint
Run tests and coverage
docker-compose exec app ./scripts/test
docker-compose exec app python
The following will just paste into the python shell to save you copying each line.
from app.db import db
from starlette_auth.tables import Scope, User
scope = Scope(code="admin", description="Full administrators access")
user = User(email='[email protected]', first_name='Admin', last_name='User')
user.set_password('password')
user.scopes.append(scope)
user.save()
npm install:
npm install
build css:
npm run watch-css
The following line must be added the the postgresql.conf
file:
shared_preload_libraries = 'pg_stat_statements'
Enable the extension in postgres:
CREATE EXTENSION pg_stat_statements;
Reset stats:
SELECT pg_stat_statements_reset();
View all logged stats:
SELECT
query,
calls,
total_time,
min_time,
max_time,
mean_time,
rows,
100.0 * shared_blks_hit / nullif(shared_blks_hit + shared_blks_read, 0) AS hit_percent
FROM pg_stat_statements
INNER JOIN pg_catalog.pg_database db
ON pg_stat_statements.dbid = db.oid
WHERE db.datname = 'appdb'
ORDER BY total_time
DESC LIMIT 25;
More info: https://www.postgresql.org/docs/current/pgstatstatements.html