Spring Boot Database - Запуск приложения с разными пользователями БД / Flyway - PullRequest
0 голосов
/ 26 марта 2020

У меня есть проблема с моим заявлением. Это приложение Spring Boot, где я создаю таблицы базы данных через Flyway. Для Flyway я создал пользователя БД, который обладает достаточными правами для создания таблиц БД.

Для приложения я хотел бы использовать другого пользователя БД (APP_DB_USER), который должен использоваться для вставки бизнес-данных.

Пока скрипт Flyway работает отлично, и таблицы создаются Я также предоставляю права на APP_DB_USER с помощью следующей команды. (Имя схемы и имя пользователя в моем примере совпадают)

GRANT ALL ON DB_USER.TABLE1 TO APP_DB_USER;

В SQL Разработчик я могу запускать операторы SELECT / INSERT с APP_DB_USER в таблицах DB_USER (например, DB_USER.TABLE1)

Моя проблема сейчас в приложении весенней загрузки. Я установил:

spring:
  datasource:
    url: DB_URL
    username: APP_DB_USER 
    password: password
    driver-class-name: oracle.jdbc.OracleDriver
    initialization-mode: EMBEDDED
    hikari:
      connection-timeout: 20000
      minimum-idle : 1
      maximum-pool-size : 2
      idle-timeout: 10000
      max-lifetime: 1000
      auto-commit: true
      schema: DB_USER

Приложение запускается правильно, но как только я пытаюсь сохранить сущность, оно выдает мне сообщение об ошибке

java.sql.SQLSyntaxErrorException: ORA-00942: Table or View not found

Кроме того, я попробовал следующее свойство

jpa:
    show-sql: true
    properties:
      hibernate:
        default_schema: DB_USER
        dialect: org.hibernate.dialect.Oracle12cDialect 

Кто-нибудь есть идеи, что я делаю неправильно. Как я могу создать через Flyway с другими таблицами DB_User, которые затем могут быть использованы приложением через другой APP_DB_USER

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...