express-cassandra - Невозможно отобразить объект модели в таблицу с коллекцией UDT

Использование новейшего драйвера express-cassandra с Cassandra 3.11. Узел 9.8.0. Создана следующая таблица и UDT:

create keyspace if not exists admin
with replication = {
    'class': 'SimpleStrategy',
    'replication_factor': 1
};

use admin;

create type role_permission (
    permission_name text,
    permission_friendly_name text,
    permission_descr text,
    status_flag int
);

create table if not exists user_profile (
    user_profile_id text,
    first_name text,
    last_name text,
    email text,
    auth_token text,
    role_permissions frozen<set<role_permission>>,
    last_mod_timestamp timestamp,
    create_timestamp timestamp,
    status_flag int,
    primary key (user_profile_id)
);

Сопоставление со следующим объектом (user_profileModel.js):

module.exports = {
    fields: {
        user_profile_id: "text",
        first_name: "text",
        last_name: "text",
        email: "text",
        auth_token: "text",
        role_permissions: {
            type: "frozen",
            typeDef: "<set<role_permission>>"
        },
        last_mod_timestamp: "timestamp",
        create_timestamp: "timestamp",
        status_flag: "int"
    },
    key: ["user_profile_id"]
};

Результатом является следующая ошибка:

apollo.model.tablecreation.schemamismatch: данная схема не соответствует существующей таблице БД "user_profile" перенос приостановлен, пожалуйста, примените изменение вручную

Как ни странно, если я позволю express-cassandra сгенерировать пространство ключей и таблицу, это сработает... в первый раз. Это все там. Если я перезапускаю приложение, я получаю ту же ошибку, описанную выше. Если я удаляю коллекцию "role_permissions" из таблицы / сущности, она работает просто отлично. Отдельные UDT также отлично работают - это не только наборы UDT.

0 ответов

Другие вопросы по тегам