Skip to content

Commit

Permalink
Port schema to MySQL 5.7 / MariaDB 10.2
Browse files Browse the repository at this point in the history
  • Loading branch information
Al2Klimov committed Jul 17, 2024
1 parent c67ed39 commit b686876
Show file tree
Hide file tree
Showing 3 changed files with 526 additions and 9 deletions.
67 changes: 67 additions & 0 deletions .github/workflows/tests_with_database.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,73 @@ on:
pull_request: {}

jobs:
mysql:
runs-on: ubuntu-latest

strategy:
fail-fast: false
matrix:
image:
- mysql:5.7
- mysql:8.0
- mysql:8
- mysql:latest
- mariadb:10.2
- mariadb:10.3
- mariadb:10.4
- mariadb:10.5
- mariadb:10.6
- mariadb:10
- mariadb:11.0
- mariadb:11.1
- mariadb:11.2
- mariadb:latest

env:
NOTIFICATIONS_TESTS_DB_TYPE: mysql
NOTIFICATIONS_TESTS_DB: notifications
NOTIFICATIONS_TESTS_DB_USER: root
NOTIFICATIONS_TESTS_DB_PASSWORD: password
NOTIFICATIONS_TESTS_DB_HOST: 127.0.0.1
NOTIFICATIONS_TESTS_DB_PORT: 3306

services:
mysql:
image: ${{ matrix.image }}
env:
MYSQL_ROOT_PASSWORD: ${{ env.NOTIFICATIONS_TESTS_DB_PASSWORD }}
MYSQL_DATABASE: ${{ env.NOTIFICATIONS_TESTS_DB }}
# Wait until MySQL becomes ready
options: >-
--health-cmd="${{ (startsWith(matrix.image, 'mysql:') || startsWith(matrix.image, 'mariadb:10'))
&& 'mysqladmin ping' || 'healthcheck.sh --connect --innodb_initialized' }}"
--health-interval=10s
--health-timeout=5s
--health-retries=5
ports:
- 3306:3306

steps:
- name: Setup Go
uses: actions/setup-go@v5
with:
go-version: stable

- name: Checkout code
uses: actions/checkout@v4

- name: Importing Schema
run: >
mysql -h127.0.0.1 -u$NOTIFICATIONS_TESTS_DB_USER -p$NOTIFICATIONS_TESTS_DB_PASSWORD
$NOTIFICATIONS_TESTS_DB < ${{ github.workspace }}/schema/mysql/schema.sql
- name: Download dependencies
run: go get -v -t -d ./...

- name: Run tests
timeout-minutes: 10
run: go test -v -timeout 5m ./...

postgresql:
name: PostgreSQL ${{ matrix.version }}
runs-on: ubuntu-latest
Expand Down
10 changes: 1 addition & 9 deletions doc/02-Installation.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,20 +21,12 @@ or install [from source](02-Installation.md.d/From-Source.md).

## Setting up the Database

A MySQL (≥5.5), MariaDB (≥10.1), or PostgreSQL (≥9.6) database is required to run Icinga Notifications.
A MySQL (≥5.7.9), MariaDB (≥10.2.2), or PostgreSQL (≥9.6) database is required to run Icinga Notifications.
Please follow the steps listed for your target database,
which guide you through setting up the database and user and importing the schema.

### Setting up a MySQL or MariaDB Database

If you use a version of MySQL < 5.7 or MariaDB < 10.2, the following server options must be set:

```
innodb_file_format=barracuda
innodb_file_per_table=1
innodb_large_prefix=1
```

Set up a MySQL database for Icinga Notifications:

```
Expand Down
Loading

0 comments on commit b686876

Please sign in to comment.