Help to keep PokéAPI running! If you're using PokéAPI as a teaching resource or for a project, consider sending us a $10 donation to help keep the server up. We get over 2 million requests a month and it's quite costly!
See [the bottom of the home page](https://pokeapi.co) to donate.
Each time the build script is run it will iterate over each table in the database, wipe it and rewrite each row using the data found in data/v2/csv.
When building against sqlite we've heard it can take a ridiculously long time to finish building out the database. In this case you can set up just the portions of the db that you need.
There is also a multi-container setup, managed by [Docker Compose](https://docs.docker.com/compose/). This setup allow you to deploy a production-like environment, with separate containers for each services.
Create data volumes for Redis and Postgres
```
docker volume create --name=redis_data
docker volume create --name=pg_data
```
Start the process using
```
docker-compose up
```
You can specify the ```-d``` switch to start in detached mode.
This will bind port 80 and 443. Unfortunately, unlike the ```docker``` command, there is no command line arguments to specify ports. If you want to change them, edit the ```docker-compose.yml``` file.
After that, start the migration process
```
docker-compose exec app python manage.py migrate
```
And then, import the data using the shell
```
docker-compose exec app python manage.py shell
```
You can use the ```build_all()``` method, or individuals data building functions (See _V2 Database setup_)
```
from data.v2.build import build_all
build_all()
```
For the moment, this setup doesn't allow you to use the ```scale``` command.
Please see the [issues on GitHub](https://github.com/PokeAPI/pokeapi/issues) before you submit a pull request or raise an issue, someone else might have beat you to it.
- Write some code, fix something, and add a test to prove that it works. **No pull request will be accepted without tests passing, or without new tests if new features are added.**
- Commit your code and push it to GitHub
- [Open a new pull request](https://help.github.com/articles/creating-a-pull-request/) and describe the changes you have made.