我在KoaJS中有一个项目,通过knex使用postgres。我想创建一个关联表,供者和接受者的贡献,这样,贡献具有has_many:donors和:receivers并具有column_id和receiver_id列。这两个字段都将引用相同组织模型的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;
我的问题是我需要添加到模型中以创建别名关联s.t。施主的id和receiver_id的参考实例。