Node js: связь не работает в парусах js версии 1

Levon Babayan спросил: 28 марта 2018 в 04:53 в: mysql

Пожалуйста, помогите мне, я использую Sails версии 1, и я хочу создать ассоциацию, но я получаю ошибку.

error: A hook (`orm`) failed to load!
error: Could not tear down the ORM hook.  Error details: Error: Invalid data store identity. No data store exist with that identity.
error: Failed to lift app: { userError: The attribute `id` on the `patients` model is an association but also specifies a type property. This is not needed and will be automatically determined.

Итак, у меня есть 2 модели (Пациенты и заказы) и i хотите получить пациентов от заказов

// Patients.js

module.exports = {
tableName: 'patients',
primaryKey: 'id',
attributes: {
    id: {
        model: 'Bookings',
        type: 'number',
        unique: true
    }
},

};

// Bookings.js

module.exports = {
tableName: 'booking',
attributes: {
    patient: {
        collection: 'Patients',
        via: 'id'
    }
}
};

1 ответ

Есть решение
Hamza Fatmi ответил: 28 марта 2018 в 06:21

Удалите свойство type из ключа attributes в Patients.js, как следует из ошибки.

// Patients
module.exports = {
tableName: 'patients',
primaryKey: 'id',
attributes: {
 id: {
    type: 'number',
    unique: true
    },
 RandomAssociationName: {
    model: 'Bookings'
    }
}// Bookings
module.exports = {
tableName: 'booking',
attributes: {
patient: {
    collection: 'Patients',
    via: 'RandomAssociationName'
  }
}
Levon Babayan ответил: 28 марта 2018 в 06:07
если я удаляю ключ типа, я получаю еще одну ошибку"тип должен быть числом или строкой"
Hamza Fatmi ответил: 28 марта 2018 в 06:09
почему вы определяете ассоциацию в качестве первичного ключа? вы можете использовать два атрибута, один в качестве первичного ключа, а другой представляет ассоциацию, чтобы у вас не возникало проблем при настройке моделей.
Levon Babayan ответил: 28 марта 2018 в 06:12
потому что, если я не установил основной, я получаю ошибку
Levon Babayan ответил: 28 марта 2018 в 06:12
пожалуйста, подождите, я отправил ошибку
Hamza Fatmi ответил: 28 марта 2018 в 06:21
@LevonBabayan см. Отредактированный ответ.