summaryrefslogtreecommitdiff
path: root/connectivity/README.md
blob: af57e1566daf345cccd197c686443b034fbb206b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
# Database Connectivity

Contains database pieces, drivers, etc.

`dbaccess` builds UI on top of this.

## Testing
### PostgreSQL

For testing, use:

    podman pull postgres:latest
    podman run --name=postgres -e POSTGRES_PASSWORD=foobarbaz -p 127.0.0.1:5432:5432 postgres:latest

In Base, Connect to an existing database, select PostgreSQL:

    URL: host=127.0.0.1 port=5432 dbname=postgres
    User: postgres
    Password: foobarbaz
    
    podman stop postgres
    podman rm postgres

In order to test SCRAM authentication, create the container like this:

    podman run --name=postgres -e POSTGRES_PASSWORD=foobarbaz -e POSTGRES_INITDB_ARGS=--auth-host=scram-sha-256 -e POSTGRES_HOST_AUTH_METHOD=scram-sha-256 -p 127.0.0.1:5432:5432 postgres:latest

### MySQL

For mysql_test:

- The CppunitTest_mysql_test unit test can be used to test the mysqlc
library with any versions of mysql or mariadb server of your choice.
  
- This test does not run automatically. It can be triggered with setting
the environment variable "CONNECTIVITY_TEST_MYSQL_DRIVER".
  
- The environment variable should contain a URL of the following format:
`[user]/[passwd]@sdbc:mysql:mysqlc:[host]:[port]/db_name`

- tl;dr:

```
    podman pull mariadb/server
    podman run --name=mariadb -e MYSQL_ROOT_PASSWORD=foobarbaz -p 127.0.0.1:3306:3306 mariadb/server
    podman exec -it mariadb /bin/bash -c "echo -e CREATE DATABASE test | /usr/bin/mysql -u root"
    (cd connectivity && make -srj8 CppunitTest_connectivity_mysql_test CONNECTIVITY_TEST_MYSQL_DRIVER="root/foobarbaz@sdbc:mysql:mysqlc:127.0.0.1:3306/test")
    podman stop mariadb
    podman rm mariadb
```