Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Erstellung eines leeren Schemas Revision 1 schlägt fehl: 209 - Benutzergruppen: Übertrage die Benutzergruppen aus der Tabelle Usergroups #356

Open
Simonn21 opened this issue Mar 11, 2025 · 7 comments

Comments

@Simonn21
Copy link

Hallo zusammen,
ich teste im Moment die Installation des SVWS-Servers in der Version 1.0.4 in Docker Containern. Dazu habe ich die Beispiel Docker Compose Datei https://github.com/SVWS-NRW/SVWS-Dokumentation/tree/main/deployment/Docker/svws-docker-example.zip genommen und einige Anpassungen durchgeführt.

Meine aktuelle Docker Compose sieht wie folgt aus:

services:
  mariadb:
    restart: always
    image: mariadb:11.4
    environment:
      MARIADB_ROOT_PASSWORD: "${MariaDB_ROOT_PASSWORD}"
      MARIADB_DATABASE: "${MariaDB_DATABASE}"
      MARIADB_USER: "${MariaDB_USER}"
      MARIADB_PASSWORD: "${MariaDB_PASSWORD}"
    volumes:
      - svws_db_data:/var/lib/mysql
    env_file:
      - .env
    healthcheck:
      test: ['CMD', '/usr/local/bin/healthcheck.sh', '--innodb_initialized']#mysqladmin ping -h 127.0.0.1 -u $$MariaDB_USER --password=$$MariaDB_PASSWORD
      interval: 1s
      timeout: 5s
      retries: 10
    ports:
      - "3306:3306"
    networks:
      - svws

  svws-server:
    image: svwsnrw/svws-server:latest
    depends_on:
      mariadb:
        condition: service_healthy
    links:
      - mariadb
    environment:
      MariaDB_HOST: "${MariaDB_HOST}"
      MariaDB_ROOT_PASSWORD: "${MariaDB_ROOT_PASSWORD}"
      MariaDB_DATABASE: "${MariaDB_DATABASE}"
      MariaDB_USER: "${MariaDB_USER}"
      MariaDB_PASSWORD: "${MariaDB_PASSWORD}"
      SVWS_TLS_KEY_ALIAS: "${SVWS_TLS_KEY_ALIAS}"
      SVWS_TLS_KEYSTORE_PATH: "${SVWS_TLS_KEYSTORE_PATH}"
      SVWS_TLS_KEYSTORE_PASSWORD: "${SVWS_TLS_KEYSTORE_PASSWORD}"
    volumes:
      - ./keystore:/etc/app/svws/conf/keystore/
      - ./svwsconfig.json:/opt/app/svws/svwsconfig.json
    env_file:
      - .env
    ports:
      - "443:8443"
    networks:
      - svws

volumes:
  svws_db_data:
networks:
  svws:

Die .env Datei sieht so aus:

INIT_SCRIPTS_DIR=/etc/app/svws/init-scripts
MariaDB_ROOT_PASSWORD=test
MariaDB_HOST=mariadb
SVWS_TLS_KEYSTORE_PASSWORD=test123
SVWS_TLS_KEY_ALIAS=alias1
SVWS_TLS_KEYSTORE_PATH=/etc/app/svws/conf/keystore

Zudem verwende ich die folgende svwsconfig.json:

{
  "EnableClientProtection" : null,
  "DisableDBRootAccess" : false,
  "DisableAutoUpdates" : false,
  "DisableTLS" : null,
  "PortHTTP" : null,
  "UseHTTPDefaultv11" : false,
  "PortHTTPS" : 8443,
  "PortHTTPPrivilegedAccess" : null,
  "UseCORSHeader" : false,
  "TempPath" : "tmp",
  "TLSKeyAlias" : "alias1",
  "TLSKeystorePath" : "/etc/app/svws/conf/keystore",
  "TLSKeystorePassword" : "test123",
  "ClientPath" : "./client",
  "AdminClientPath" : "./adminclient",
  "LoggingEnabled" : true,
  "LoggingPath" : "logs",
  "ServerMode" : "stable",
  "PrivilegedDatabaseUser" : "root",
  "DBKonfiguration" : {
    "dbms" : "MARIA_DB",
    "location" : "mariadb",
    "defaultschema" : null,
    "SchemaKonfiguration" : [],
    "connectionRetries" : 0,
    "retryTimeout" : 0
  }
}

Der SVWS-Server und die Datenbank starten ohne Probleme.
Wenn ich nun versuche unter https://.../admin#/schemaneu ein neues leeres Schema anzulegen kommt der folgende Fehler in den Logs:

[...]
svws-server-1  | 2025-03-11T06:39:55.136 INFO       205 - K_Lehrer: Setze die Kennwortinformationen aus der Benutzertabelle (0)
svws-server-1  | 2025-03-11T06:39:55.137 INFO       206 - Benutzer: Erstelle Benutzer-Einträge für allgemeine Benutzer, die nicht in der Lehrer-Tabelle vorkommen (1)
svws-server-1  | 2025-03-11T06:39:55.139 INFO       207 - Benutzer: Erstelle Benutzer-Einträge für Benutzer, die in der Lehrer-Tabelle vorkommen (0)
svws-server-1  | 2025-03-11T06:39:55.141 INFO       208 - BenutzerEmail: Kopiere Email-Informationen aus der Users-Tabelle (0)
svws-server-1  | 2025-03-11T06:39:55.142 INFO       209 - Benutzergruppen: Übertrage die Benutzergruppen aus der Tabelle Usergroupsorg.mariadb.jdbc.message.server.ErrorPacket - Error: 1048-23000: Column 'Bezeichnung' cannot be null
svws-server-1  | [EL Warning]: 2025-03-11 06:39:55.144--UnitOfWork(1222858089)--Exception [EclipseLink-4002] (Eclipse Persistence Services - 4.0.3.v202405220658): org.eclipse.persistence.exceptions.DatabaseException
svws-server-1  | Internal Exception: java.sql.SQLIntegrityConstraintViolationException: (conn=71230) Column 'Bezeichnung' cannot be null
svws-server-1  | Error Code: 1048
svws-server-1  | Call: INSERT INTO Benutzergruppen(ID, Bezeichnung)
svws-server-1  | SELECT
svws-server-1  |     UG_ID,
svws-server-1  |     UG_Bezeichnung
svws-server-1  | FROM
svws-server-1  |     Usergroups
svws-server-1  | WHERE
svws-server-1  |     UG_ID IS NOT NULL
svws-server-1  |     AND UG_Bezeichnung IS NOT NULL
svws-server-1  |
svws-server-1  | Query: DataModifyQuery(sql="INSERT INTO Benutzergruppen(ID, Bezeichnung)
svws-server-1  | SELECT
svws-server-1  |     UG_ID,
svws-server-1  |     UG_Bezeichnung
svws-server-1  | FROM
svws-server-1  |     Usergroups
svws-server-1  | WHERE
svws-server-1  |     UG_ID IS NOT NULL
svws-server-1  |     AND UG_Bezeichnung IS NOT NULL
svws-server-1  | ")
svws-server-1  | 2025-03-11T06:39:55.146 INFO ERROR

Aus irgendeinem Grund schlägt https://github.com/SVWS-NRW/SVWS-Server/blob/516e605fd9da7fb5bb31f0878d98053c8056bfbb/svws-db/src/main/java/de/svws_nrw/db/schema/revisionen/Revision1Updates.java#L2526 fehl.

@kroerig
Copy link
Contributor

kroerig commented Mar 11, 2025

Der Fehler ist Column 'Bezeichnung' cannot be null.

Wäre die Frage: Warum ist der Wert NULL?

@Simonn21
Copy link
Author

Meine Frage ist, warum das Erstellen eines leeren neuen Schemas fehlschlägt? Und ich den obigen Fehler beheben kann?

@Simonn21 Simonn21 changed the title Erstellung eines Leeren Schemas Revision 1 schlägt fehl: 209 - Benutzergruppen: Übertrage die Benutzergruppen aus der Tabelle Usergroups Erstellung eines leeren Schemas Revision 1 schlägt fehl: 209 - Benutzergruppen: Übertrage die Benutzergruppen aus der Tabelle Usergroups Mar 11, 2025
@AnneSchueller
Copy link
Collaborator

Man kann ich Schild2 Benutzergruppen ohne Namen anlegen. Sollte man natürlich nicht machen, aber es geht theoretisch und führt zu einer Fehlermeldung bei der Migration.

Hier mal ein Schild2-Screenshot. Der oberste Eintrag hat keine Bezeichnung:

Image

@hmt
Copy link
Collaborator

hmt commented Mar 11, 2025

Im Issue ist die Rede von einem leeren Schema. Ist es wirklich ein leeres Schema oder wird migriert, @Simonn21 ? Bei einem leeren Schema sollte der Fehler nicht auftauchen.

@kroerig
Copy link
Contributor

kroerig commented Mar 11, 2025

Ich habe bei mir auch gerade mal ein leeres Schema erzeugt. Das lief ohne Fehler durch. Auch das Initialisieren über die Schulnummer hat keinen Fehler ausgegeben.

@AnneSchueller
Copy link
Collaborator

Stimmt... ein leeres Schema. Das habe ich zu oberflächlich gelesen...

@Simonn21
Copy link
Author

Im Issue ist die Rede von einem leeren Schema. Ist es wirklich ein leeres Schema oder wird migriert, @Simonn21 ? Bei einem leeren Schema sollte der Fehler nicht auftauchen.

Es ist das Erstellen eines leeren Schemas gemeint. Ich habe es gerade nochmal unter WSL mit den Docker Containern wie oben beschrieben probiert. Es kommt zu dem gleichen Fehler beim Erstellen eines leeren Schemas. Ich habe dazu die Logs der MariaDB und des SVWS-Server angehangen.

mariadb.log

svws-server.log

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants