Для работы с базой данный был создан механизм автоматической перегенерации сущностей. Суть данного механизма состоит в том, что при каждом запуске приложения:
node bin/www
происходит перестроение файла ~/modules/dbcontext.js. Данный файл предоставляет API для работы с базой данных.
Протокол генерации.
- Запуска приложения, командой node bin/www
- Выполняется код, отвечающий за построения объекта dbcontext.js. Реализация данного кода представлена в файле ~/bin/init.js. При выполнение данного кода, на основе шаблонизатора ejs, происходит генерация файла, после чего результат записывается в файловую систему. За чтение схемы базы данных отвечает модуль mobnius-schema-reader
- Информация о вновь созданном файле считывается и становиться частью приложения.
Шаблон для создания файла dbcontext.js находится тут ~/bin/dbcontext
Для правильной генерации данных в базе данных присутствует функция core.pf_store(), которая возвращает список сущностей, которые есть. Для добавление новых схем (сейчас доступна поддержка только core, dbo) требуется вручную отредактировать данную функцию. В ней есть два места, где нужно указать какие схемы надо использовать.
- where t.table_type = ‘VIEW’ AND t.table_catalog = ‘mobnius_net’ and (t.table_schema = ‘public‘ or t.table_schema = ‘core‘ or t.table_schema = ‘dbo‘)
- where routine_catalog = ‘mobnius_net’ and (routine_schema = ‘public‘ or routine_schema = ‘core‘ or routine_schema = ‘dbo‘)