Я проектирую микросервис Moleculer JS , который расширяет Moleculer DB и может расширять как SQL (например, Sequelize ), так и noSQL (например, * 1007).* MongoDB ) адаптеры.
Вот схема book
службы
const uuid = require('uuid/v4')
const Sequelize = require('sequelize')
const DBService = require('moleculer-db')
const pkg = require('../package.json')
const adapter = require('../db/sql.adapter')
module.exports = {
name: 'book',
version: pkg.version,
mixins: [DBService],
settings: {
$noVersionPrefix: true,
idField: 'id',
},
adapter,
model: {
name: 'book',
define: {
id: { type: Sequelize.UUID, primaryKey: true, allowNull: false, defaultValue: uuid },
name: { type: Sequelize.STRING, allowNull: false },
},
},
}
Хотя имя модели book
при запуске службы молекулярного соединения books
таблица / коллекция будетсоздано (не важно, SQL это или нет).Это нормально.
Но в случае, если я хочу создать другую службу, которая будет хранить удаленные элементы, скажем, books_archive
или book_archive
- books_archives
или book_archives
(соответственно).
Sequelize документация содержит
freezeTableName: true,
tableName: 'booksArchive',
свойств конфигурации, которые я пытался поместить в settings
блок схемы и внутри model
блока, а также внутри свойств конструкции адаптера(см. ниже), но безуспешно - созданная коллекция (таблица) все еще содержит дополнительный s
символ.Есть ли решение?
const adapter = new SQLAdapter(config.get('database.pg.uri'), {
dialect: 'postgres',
logging: false,
freezeTableName: true,
tableName: 'booksArchive',
})