Skip to content

Commit b1dd547

Browse files
committed
fix: JSON fields handling for MariaDB
1 parent a8c7710 commit b1dd547

35 files changed

+447
-35
lines changed

CHANGELOG.md

+1
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ This project adheres to [Semantic Versioning](http://semver.org/).
1515
- Fixed error page metadata title warning
1616
- Fixed telemetry
1717
- Await page render job to complete before resolving
18+
- Fixed JSON fields for MariaDB
1819

1920
### Changed
2021
- Moved Insert Media button in Markdown editor

Makefile

+13-9
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
SHELL := /bin/bash
2+
DEVDB := postgres
23

34
start: ## Start Wiki.js in production mode
45
node wiki start
@@ -23,27 +24,30 @@ test: ## Run code linting tests
2324
pug-lint server/views && jest
2425

2526
docker-dev-up: ## Run dockerized dev environment
26-
docker-compose -f ./dev/docker/docker-compose.yml -p wiki --project-directory . up -d
27-
docker-compose -f ./dev/docker/docker-compose.yml -p wiki --project-directory . exec wiki yarn dev
27+
docker-compose -f ./dev/docker-${DEVDB}/docker-compose.yml -p wiki --project-directory . up -d
28+
docker-compose -f ./dev/docker-${DEVDB}/docker-compose.yml -p wiki --project-directory . exec wiki yarn dev
2829

2930
docker-dev-down: ## Shutdown dockerized dev environment
30-
docker-compose -f ./dev/docker/docker-compose.yml -p wiki --project-directory . down
31+
docker-compose -f ./dev/docker-${DEVDB}/docker-compose.yml -p wiki --project-directory . down
3132

3233
docker-dev-rebuild: ## Rebuild dockerized dev image
3334
rm -rf ./node_modules
34-
docker-compose -f ./dev/docker/docker-compose.yml -p wiki --project-directory . build --no-cache --force-rm
35+
docker-compose -f ./dev/docker-${DEVDB}/docker-compose.yml -p wiki --project-directory . build --no-cache --force-rm
3536

3637
docker-dev-clean: ## Clean DB, redis and data folders
3738
rm -rf ./data
38-
docker-compose -f ./dev/docker/docker-compose.yml -p wiki --project-directory . exec db psql --dbname=wiki --username=wikijs --command='DROP SCHEMA IF EXISTS public CASCADE; CREATE SCHEMA public'
39-
docker-compose -f ./dev/docker/docker-compose.yml -p wiki --project-directory . exec redis redis-cli flushall
39+
[[ "${DEVDB}" == "postgres" ]] && docker-compose -f ./dev/docker-postgres/docker-compose.yml -p wiki --project-directory . exec db psql --dbname=wiki --username=wikijs --command='DROP SCHEMA IF EXISTS public CASCADE; CREATE SCHEMA public' || true
40+
[[ "${DEVDB}" == "mysql" || "${DEVDB}" == "mariadb" ]] && docker-compose -f ./dev/docker-${DEVDB}/docker-compose.yml -p wiki --project-directory . exec db mysql -uroot -p'wikijsrocks' -e 'DROP SCHEMA IF EXISTS wiki; CREATE SCHEMA wiki;' || true
41+
## [[ "${DEVDB}" = "mssql" ]] && docker-compose -f ./dev/docker-mssql/docker-compose.yml -p wiki --project-directory . exec db ls
42+
[[ "${DEVDB}" == "sqlite" ]] && docker-compose -f ./dev/docker-${DEVDB}/docker-compose.yml -p wiki --project-directory . exec wiki rm -rf /wiki/db.sqlite || true
43+
docker-compose -f ./dev/docker-${DEVDB}/docker-compose.yml -p wiki --project-directory . exec redis redis-cli flushall
4044

4145
docker-dev-bash: ## Rebuild dockerized dev image
42-
docker-compose -f ./dev/docker/docker-compose.yml -p wiki --project-directory . exec wiki bash
46+
docker-compose -f ./dev/docker-${DEVDB}/docker-compose.yml -p wiki --project-directory . exec wiki bash
4347

4448
docker-build: ## Run assets generation build in docker
45-
docker-compose -f ./dev/docker/docker-compose.yml -p wiki --project-directory . run wiki yarn build
46-
docker-compose -f ./dev/docker/docker-compose.yml -p wiki --project-directory . down
49+
docker-compose -f ./dev/docker-${DEVDB}/docker-compose.yml -p wiki --project-directory . run wiki yarn build
50+
docker-compose -f ./dev/docker-${DEVDB}/docker-compose.yml -p wiki --project-directory . down
4751

4852
help: ## Display help
4953
@echo ''

dev/build/Dockerfile

+1-1
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ FROM node:10.15-alpine
2929
LABEL maintainer="requarks.io"
3030

3131
RUN apk update && \
32-
apk add bash curl git openssh gnupg supervisor --no-cache && \
32+
apk add bash curl git openssh gnupg sqlite --no-cache && \
3333
rm -rf /var/cache/apk/* && \
3434
mkdir -p /wiki && \
3535
mkdir -p /logs
File renamed without changes.

dev/docker-mariadb/Dockerfile

+21
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
# -- DEV DOCKERFILE --
2+
# -- DO NOT USE IN PRODUCTION! --
3+
4+
FROM node:10-alpine
5+
LABEL maintainer "requarks.io"
6+
7+
RUN apk update && \
8+
apk add bash curl git python make g++ nano openssh gnupg --no-cache && \
9+
mkdir -p /wiki
10+
11+
WORKDIR /wiki
12+
COPY package.json .
13+
RUN yarn --silent
14+
COPY ./dev/docker-mariadb/init.sh ./init.sh
15+
16+
ENV dockerdev 1
17+
ENV DEVDB mariadb
18+
19+
EXPOSE 3000
20+
21+
CMD ["tail", "-f", "/dev/null"]

dev/docker-mariadb/config.yml

+14
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
port: 3000
2+
bindIP: 0.0.0.0
3+
db:
4+
type: mariadb
5+
host: db
6+
port: 3306
7+
user: wikijs
8+
pass: wikijsrocks
9+
db: wiki
10+
redis:
11+
host: redis
12+
port: 6379
13+
db: 0
14+
logLevel: info

dev/docker-mariadb/docker-compose.yml

+61
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
# -- DEV DOCKER-COMPOSE --
2+
# -- DO NOT USE IN PRODUCTION! --
3+
4+
version: "3"
5+
services:
6+
7+
redis:
8+
image: redis:4-alpine
9+
ports:
10+
- "16379:6379"
11+
logging:
12+
driver: "none"
13+
networks:
14+
- wikinet
15+
16+
db:
17+
image: mariadb:10.3
18+
environment:
19+
MYSQL_DATABASE: wiki
20+
MYSQL_PASSWORD: wikijsrocks
21+
MYSQL_USER: wikijs
22+
MYSQL_ROOT_PASSWORD: wikijsrocks
23+
logging:
24+
driver: "none"
25+
volumes:
26+
- db-data:/var/lib/mysql
27+
networks:
28+
- wikinet
29+
ports:
30+
- "13306:3306"
31+
32+
adminer:
33+
image: adminer:latest
34+
logging:
35+
driver: "none"
36+
networks:
37+
- wikinet
38+
ports:
39+
- "3001:8080"
40+
41+
wiki:
42+
build:
43+
context: .
44+
dockerfile: dev/docker-mariadb/Dockerfile
45+
depends_on:
46+
- db
47+
- redis
48+
networks:
49+
- wikinet
50+
ports:
51+
- "3000:3000"
52+
volumes:
53+
- .:/wiki
54+
- /wiki/node_modules
55+
command: ["sh", "./dev/docker-mariadb/init.sh"]
56+
57+
networks:
58+
wikinet:
59+
60+
volumes:
61+
db-data:

dev/docker-mariadb/init.sh

+7
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
#!/bin/sh
2+
3+
echo "Waiting for redis and mariadb to start up..."
4+
bash ./dev/docker-common/wait.sh redis:6379
5+
bash ./dev/docker-common/wait.sh db:3306
6+
echo "=== READY ==="
7+
tail -f /dev/null

dev/docker/Dockerfile renamed to dev/docker-mssql/Dockerfile

+2-1
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,10 @@ RUN apk update && \
1111
WORKDIR /wiki
1212
COPY package.json .
1313
RUN yarn --silent
14-
COPY ./dev/docker/init.sh ./init.sh
14+
COPY ./dev/docker-mssql/init.sh ./init.sh
1515

1616
ENV dockerdev 1
17+
ENV DEVDB mssql
1718

1819
EXPOSE 3000
1920

dev/docker-mssql/config.yml

+14
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
port: 3000
2+
bindIP: 0.0.0.0
3+
db:
4+
type: mssql
5+
host: db
6+
port: 1433
7+
user: SA
8+
pass: W1kiJSR0cks!
9+
db: wiki
10+
redis:
11+
host: redis
12+
port: 6379
13+
db: 0
14+
logLevel: info

dev/docker-mssql/docker-compose.yml

+60
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
# -- DEV DOCKER-COMPOSE --
2+
# -- DO NOT USE IN PRODUCTION! --
3+
4+
version: "3"
5+
services:
6+
7+
redis:
8+
image: redis:4-alpine
9+
ports:
10+
- "16379:6379"
11+
logging:
12+
driver: "none"
13+
networks:
14+
- wikinet
15+
16+
db:
17+
image: mcr.microsoft.com/mssql/server:2017-latest
18+
environment:
19+
ACCEPT_EULA: 'Y'
20+
MSSQL_PID: Developer
21+
SA_PASSWORD: W1kiJSR0cks!
22+
logging:
23+
driver: "none"
24+
volumes:
25+
- db-data:/var/opt/mssql
26+
networks:
27+
- wikinet
28+
ports:
29+
- "11433:1433"
30+
31+
adminer:
32+
image: adminer:latest
33+
logging:
34+
driver: "none"
35+
networks:
36+
- wikinet
37+
ports:
38+
- "3001:8080"
39+
40+
wiki:
41+
build:
42+
context: .
43+
dockerfile: dev/docker-mssql/Dockerfile
44+
depends_on:
45+
- db
46+
- redis
47+
networks:
48+
- wikinet
49+
ports:
50+
- "3000:3000"
51+
volumes:
52+
- .:/wiki
53+
- /wiki/node_modules
54+
command: ["sh", "./dev/docker-mssql/init.sh"]
55+
56+
networks:
57+
wikinet:
58+
59+
volumes:
60+
db-data:

dev/docker-mssql/init.sh

+7
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
#!/bin/sh
2+
3+
echo "Waiting for redis and mssql to start up..."
4+
bash ./dev/docker-common/wait.sh redis:6379
5+
bash ./dev/docker-common/wait.sh db:1433
6+
echo "=== READY ==="
7+
tail -f /dev/null

dev/docker-mysql/Dockerfile

+21
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
# -- DEV DOCKERFILE --
2+
# -- DO NOT USE IN PRODUCTION! --
3+
4+
FROM node:10-alpine
5+
LABEL maintainer "requarks.io"
6+
7+
RUN apk update && \
8+
apk add bash curl git python make g++ nano openssh gnupg --no-cache && \
9+
mkdir -p /wiki
10+
11+
WORKDIR /wiki
12+
COPY package.json .
13+
RUN yarn --silent
14+
COPY ./dev/docker-mysql/init.sh ./init.sh
15+
16+
ENV dockerdev 1
17+
ENV DEVDB mysql
18+
19+
EXPOSE 3000
20+
21+
CMD ["tail", "-f", "/dev/null"]

dev/docker-mysql/config.yml

+14
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
port: 3000
2+
bindIP: 0.0.0.0
3+
db:
4+
type: mysql
5+
host: db
6+
port: 3306
7+
user: wikijs
8+
pass: wikijsrocks
9+
db: wiki
10+
redis:
11+
host: redis
12+
port: 6379
13+
db: 0
14+
logLevel: info

dev/docker-mysql/docker-compose.yml

+61
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
# -- DEV DOCKER-COMPOSE --
2+
# -- DO NOT USE IN PRODUCTION! --
3+
4+
version: "3"
5+
services:
6+
7+
redis:
8+
image: redis:4-alpine
9+
ports:
10+
- "16379:6379"
11+
logging:
12+
driver: "none"
13+
networks:
14+
- wikinet
15+
16+
db:
17+
image: mysql:5.7
18+
environment:
19+
MYSQL_DATABASE: wiki
20+
MYSQL_PASSWORD: wikijsrocks
21+
MYSQL_USER: wikijs
22+
MYSQL_ROOT_PASSWORD: wikijsrocks
23+
logging:
24+
driver: "none"
25+
volumes:
26+
- db-data:/var/lib/mysql
27+
networks:
28+
- wikinet
29+
ports:
30+
- "13306:3306"
31+
32+
adminer:
33+
image: adminer:latest
34+
logging:
35+
driver: "none"
36+
networks:
37+
- wikinet
38+
ports:
39+
- "3001:8080"
40+
41+
wiki:
42+
build:
43+
context: .
44+
dockerfile: dev/docker-mysql/Dockerfile
45+
depends_on:
46+
- db
47+
- redis
48+
networks:
49+
- wikinet
50+
ports:
51+
- "3000:3000"
52+
volumes:
53+
- .:/wiki
54+
- /wiki/node_modules
55+
command: ["sh", "./dev/docker-mysql/init.sh"]
56+
57+
networks:
58+
wikinet:
59+
60+
volumes:
61+
db-data:

dev/docker-mysql/init.sh

+7
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
#!/bin/sh
2+
3+
echo "Waiting for redis and mysql to start up..."
4+
bash ./dev/docker-common/wait.sh redis:6379
5+
bash ./dev/docker-common/wait.sh db:3306
6+
echo "=== READY ==="
7+
tail -f /dev/null

dev/docker-postgres/Dockerfile

+21
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
# -- DEV DOCKERFILE --
2+
# -- DO NOT USE IN PRODUCTION! --
3+
4+
FROM node:10-alpine
5+
LABEL maintainer "requarks.io"
6+
7+
RUN apk update && \
8+
apk add bash curl git python make g++ nano openssh gnupg --no-cache && \
9+
mkdir -p /wiki
10+
11+
WORKDIR /wiki
12+
COPY package.json .
13+
RUN yarn --silent
14+
COPY ./dev/docker-postgres/init.sh ./init.sh
15+
16+
ENV dockerdev 1
17+
ENV DEVDB postgres
18+
19+
EXPOSE 3000
20+
21+
CMD ["tail", "-f", "/dev/null"]
File renamed without changes.

0 commit comments

Comments
 (0)