pilosus / dienstplan

Slack bot app for duty rotations
https://dienstplan-slack.pilosus.org
Other
21 stars 1 forks source link

[BUG] DB migrations fail silently if a DB user lacks DDL permissions #117

Open pilosus opened 4 months ago

pilosus commented 4 months ago

Describe the bug

When database user lacks DDL permissions to create table, migration fails silently.

To Reproduce Steps to reproduce the behavior:

  1. Set up a Postgres data base with a non-super-user account
  2. Run app in --mode migrate
  3. See the migrate script logs (connection established, exit status 1, no exceptions thrown):
May 25 11:01:44 ubuntu-s-1vcpu-1gb-fra1-01 java[22255]: 11:01:44,345 |-INFO in ch.qos.logback.core.model.processor.AppenderRefModelHandler - Attaching appender named [STDOU>
May 25 11:01:44 ubuntu-s-1vcpu-1gb-fra1-01 java[22255]: 11:01:44,345 |-INFO in ch.qos.logback.core.model.processor.DefaultProcessor@199bc830 - End of configuration.
May 25 11:01:44 ubuntu-s-1vcpu-1gb-fra1-01 java[22255]: 11:01:44,346 |-INFO in ch.qos.logback.classic.joran.JoranConfigurator@4d8286c4 - Registering current configuration a>
May 25 11:01:44 ubuntu-s-1vcpu-1gb-fra1-01 java[22255]: 11:01:44,350 |-INFO in ch.qos.logback.classic.util.ContextInitializer@150ede8b - ch.qos.logback.classic.util.Default>
May 25 11:01:47 ubuntu-s-1vcpu-1gb-fra1-01 java[22255]: 2024-05-25 11:01:47,849 [main] INFO  com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Starting...
May 25 11:01:48 ubuntu-s-1vcpu-1gb-fra1-01 java[22255]: 2024-05-25 11:01:48,771 [main] INFO  com.zaxxer.hikari.pool.HikariPool - HikariPool-1 - Added connection org.postgre>
May 25 11:01:48 ubuntu-s-1vcpu-1gb-fra1-01 java[22255]: 2024-05-25 11:01:48,776 [main] INFO  com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Start completed.
May 25 11:01:49 ubuntu-s-1vcpu-1gb-fra1-01 systemd[1]: dienstplan-migrate.service: Main process exited, code=exited, status=1/FAILURE
░░ Subject: Unit process exited
░░ Defined-By: systemd
░░ Support: http://www.ubuntu.com/support
░░ 
░░ An ExecStart= process belonging to unit dienstplan-migrate.service has exited.
░░ 
░░ The process' exit code is 'exited' and its exit status is 1.

Expected behavior

Clear error message is shown to a user if a DB user lacks permission to run migrations properly.

*Application setup

Additional context

Application loglevel doesn't affect the behaviour, it's the same for INFO and DEBUG levels