import { MigrationInterface, QueryRunner, Table, TableForeignKey } from 'typeorm'; export class AddConnectedUsers1648844808010 implements MigrationInterface { public async up(queryRunner: QueryRunner): Promise { await queryRunner.createTable( new Table({ name: 'chat_room_connection', columns: [ { name: 'id', type: 'int', isPrimary: true, isGenerated: true, }, { name: 'userId', type: 'int', isNullable: false, }, { name: 'chatRoomId', type: 'text', isNullable: false, }, ], }), true, ); await queryRunner.createForeignKey( 'chat_room_connection', new TableForeignKey({ columnNames: ['userId'], referencedColumnNames: ['id'], referencedTableName: 'user', onDelete: 'CASCADE', }), ); await queryRunner.createForeignKey( 'chat_room_connection', new TableForeignKey({ columnNames: ['chatRoomId'], referencedColumnNames: ['id'], referencedTableName: 'chat_room', onDelete: 'CASCADE', }), ); } public async down(queryRunner: QueryRunner): Promise { await queryRunner.dropTable('connected_users'); } }