Table of contents:
There are often a case when CSS is not being loaded properly on development. Why is this happening :thinking:? If we look at Network tab in Developer Tools, we see that many
GETrequests are ending up as
This is happening due to your local static file not built correctly.
To fix this issue, try to run
gulp buildDevagain in your static_src folder and clear your browser's cache!
(This trick works if you run docker-compose in detached mode (
docker-compose up -d))
You can use
pdbto debug python code (quick intro) (think of
gdbfor your python code). Add the following line to where you want to debug the code:
import pdb; pdb.set_trace()
This will stop the code execution, but now we need to attach our terminal to the running django container. Before we do so, make sure the following two lines are in
djangocontainer config that allows the container to be attached for debugging:
If those are in right place, run the code until execution hit the
docker attach --detach-keys z ubyssey-devto start debugging, and exit out of the debugging session by pressing
Whenever we want to update our database scheme, Django require us to do this through migrations :snake:
Normally you would run
python manage.py migrateto run mingrations in typical Django migrations in your local machine. However, because our applications live inside Docker containers, we need to somehow apply changes to the container image instead of your local machine. Use these commands to do so:
# Move into Ubyssey project dir
# Make sure to start docker containers. -d flag is for starting containers in the background
docker-compose up -d
# Attach current terminal session to Docker
docker exec -t -i ubyssey-dev bash
# cd into ubyssey.ca project folder
# Run migration
python manage.py migrate
# Exit from docker container
You might run into an error that look something like this in gulp container while using our Docker setup:
Error: Missing binding /Users/Dan/Library/Application Support/Atom/dev/packages/source-preview-sass/node_modules/node-sass/vendor/darwin-x64-47/binding.node
Node Sass could not find a binding for your current environment: OS X 64-bit with Node.js 6.x
Found bindings for the following environments:
* OS X 64-bit with Node.js 6.x
This usually happens because your environment has changed since running `npm install`.
Run `npm rebuild node-sass` to build the binding for your current environment.
In that case, change a line in your
docker-compose.ymlfile where it says:
command: bash -c "cd ubyssey.ca/ubyssey/static && yarn && gulp"
command: bash -c "cd ubyssey.ca/ubyssey/static && yarn install --force && gulp"
When the admin page looks blank, that means the dispatch version is out of sync with ubyssey.ca repo
Solve this by going into dispatch folder, and running
python setup.py develop
In order to inspect local DB in docker, you need to attach command line session to running docker container. Run the following:
docker exec -it ubyssey_db bash -l
Once you're in, run the usual mysql command to run the console
# Pass is ubyssey
mysql -u root -p