feat: add instructions to setup mariadb

This commit is contained in:
realaravinth 2022-07-23 16:17:59 +05:30
parent 1fded38ee8
commit 6de9129cd0
No known key found for this signature in database
GPG key ID: AD9F0F08E855ED88

View file

@ -13,13 +13,13 @@ $ docker-compose -d up
### Logs from docker:
- Logs from database and web server as they are generated:
- Logs from database and web server as they are generated:
```bash
$ docker-compose logs -f
```
- from just webserver:
- from just webserver:
```bash
$ docker-compose logs -f mcaptcha
@ -60,11 +60,16 @@ refer to [official instructions](https://www.gnu.org/software/make/)
### External Dependencies:
### Postgres database:
mCaptcha currently implements support for the following database:
The backend requires a Postgres database. We have
compiletime SQL checks so without a database available, you won't be
able to build the project.
1. Postgres
2. mariadb(MySQL)
For development purposes, currently it is recommended to setup both
databases as tests will break without it. In future, mechanisms will be
implemented for working with select databases.
### Postgres database:
I use Postgres in Docker.
@ -88,23 +93,53 @@ $ docker start mcaptcha-postgres
4. Set configurations:
```bash
$ cd mcaptcha # your copy of https://github.com/mCaptcha/mcaptcha
$ echo 'export DATABASE_URL="postgres://postgres:password@localhost:5432/postgres"' > .env
cd mcaptcha # your copy of https://github.com/mCaptcha/mcaptcha
echo 'export POSTGRES_DATABASE_URL="postgres://postgres:password@localhost:5432/postgres"' >> .env
```
**NOTE: Don't use this database for other projects**
### mariadb database
5. Run migrations:
This step is only required when migrations are updated. The server
binary has inbuilt migrations manager but that can only be used after
the server is compiled. Since we are trying to compile the server here,
we can't use that.
I use mariadb also in Docker
However, this project ships with a utility to run migrations!
1. To install Docker, please refer to [official
instructions](https://docs.docker.com/engine/install/].
2. Create create database user:
```bash
docker create
-p 3306:3306 \
--name some-mariadb \
--env MARIADB_USER=maria \
--env MARIADB_PASSWORD=password \
--env MARIADB_ROOT_PASSWORD=password \
--env MARIADB_DATABASE=maria \
mariadb:latest
```
3. Start database container:
```bash
docker start mcaptcha-mariadb
```
4. Set configurations:
```bash
cd mcaptcha # your copy of https://github.com/mCaptcha/mcaptcha
echo 'export MARIA_DATABASE_URL="mysql://maria:password@localhost/maria"' >> .env
```
### Database migrations
This step is only required when migrations are updated. The server
binary has inbuilt migrations manager but that can only be used after
the server is compiled. Since we are trying to compile the server here,
we can't use that. However, this project ships with a utility to run migrations!
```bash
$ cd mcaptcha # your copy of https://github.com/mCaptcha/mcaptcha
$ cargo run --bin tests-migrate
make migrate
```
That's it, you are all set!