Как создать псевдоним столбцов в моделях knex? - PullRequest
0 голосов
/ 07 апреля 2019

У меня есть проект в KoaJS, использующий postgres через knex.Я хочу создать ассоциативную таблицу «Вклады для доноров и получателей», такую, чтобы «Вклады» has_many: doners и: получатели и имел столбцы donor_id и receive_id.оба поля будут ссылаться на столбец идентификатора одной и той же модели Организации

Вот миграция, которая, как я полагаю, в порядке:

exports.up = (knex, Promise) => knex.schema.createTable('contributions', t => {
  t.uuid('id').primary();
  t.uuid('donor_id');
  t.uuid('receiver_id');
  t.boolean('status').notNullable().defaultTo(false);
  t.timestamp('created_at', true).notNullable().defaultTo(knex.fn.now());
  t.timestamp('updated_at', true).notNullable().defaultTo(knex.fn.now());
});

exports.down = (knex, Promise) => knex.schema.dropTable('contributions');

и модель:

const Model = require('./Model');

class Contributions extends Model {
  static get tableName () {
    return 'contributions';
  };

  static get jsonSchema () {
    return {
      type: 'object',
      required: ['title', 'content'],
      properties: {
        id: { type: 'uuid' },
        donor_id: { type: 'integer' },
        receiver_id: { type: 'integer' }
      }
    };
  }
}

module.exports = Contributions;

Мой вопрос заключается в том, что мне нужно добавить в модель, чтобы создать псевдонимы-ссылки st экземпляры donor_ids и receive_ids модели User.

...