Добрый день, команда NocoBase!
Есть такая проблема: хочу использовать подключение к внешней базе данных (Oracle) и при этом иметь возможность загружать файлы в мое приложение.
В сравнении источников Main и внешнего (External Data Source)
https://docs.nocobase.com/handbook/data-modeling/main-vs-external-data-sources
даны рекомендации:
- Если вы используете NocoBase для создания новой бизнес-системы, используйте основную базу данных, которая позволит вам использовать все функциональные возможности NocoBase.
- Если вы используете NocoBase для подключения к базам данных других систем для выполнения базовых операций CRUD, то используйте внешние базы данных.
Получается, что при подключении к БД Oracle, я могу только редактировать таблицы, но загружать файлы и связывать их с записями коллекций из внешнего источника не могу – такого функционала на текущий момент в NocoBase нет.
Вот какие варианты пробовал:
1 Создать коллекцию файлов в основном источнике и связать её с синхронизированной коллекцией из внешнего источника. Проблема: NocoBase не дает связывать коллекции из разных источников.
2 «Отметить» коллекцию во внешнем источнике как «файловую коллекцию» тоже нельзя, после синхронизации с БД все таблицы внешнего источника определяются просто как обычные коллекции. В форме редактирования записи UI я не могу выбрать компонент поля «Менеджер файлов» для поля-ассоциации, которое указывает на коллекцию с файлами.
3 Еще пробовал решение через oracle_fdw: создать foreign tables в БД, их обернуть в редактируемые View, и подключиться к ним из основного источника (main). Это дало результат (!), однако хотелось бы не использовать этот метод из «костыльности». Хотелось бы подключаться к имеющейся структуре БД через коммерческий плагин Oracle SQL и при этом иметь возможность привязывать файловые коллекции к обычным.
Подскажите, пожалуйста, есть ли на текущий момент какой-нибудь способ это реализовать?