From ef1e3c578b1aebf3aa29ccd0a9b9de6bcca37c9c Mon Sep 17 00:00:00 2001 From: Hugo Falcao Date: Tue, 9 Aug 2022 00:38:22 -0300 Subject: [PATCH] feat(migrations): :construction: Create migrations of tables (routes, neighborhoods served, destinations, passengers and route historic --- .../migrations/1659404395471-CreateRoutes.ts | 54 +++++++++++++++++++ ...1660009211327-CreateNeighborhoodsServed.ts | 42 +++++++++++++++ .../1660009323138-CreateDestinations.ts | 42 +++++++++++++++ .../1660010452826-CreatePassengers.ts | 34 ++++++++++++ .../1660010491828-CreateRouteHistory.ts | 38 +++++++++++++ 5 files changed, 210 insertions(+) create mode 100644 src/database/migrations/1659404395471-CreateRoutes.ts create mode 100644 src/database/migrations/1660009211327-CreateNeighborhoodsServed.ts create mode 100644 src/database/migrations/1660009323138-CreateDestinations.ts create mode 100644 src/database/migrations/1660010452826-CreatePassengers.ts create mode 100644 src/database/migrations/1660010491828-CreateRouteHistory.ts diff --git a/src/database/migrations/1659404395471-CreateRoutes.ts b/src/database/migrations/1659404395471-CreateRoutes.ts new file mode 100644 index 0000000..f8c75f7 --- /dev/null +++ b/src/database/migrations/1659404395471-CreateRoutes.ts @@ -0,0 +1,54 @@ +import { MigrationInterface, QueryRunner, Table } from 'typeorm'; + +export class CreateRoutes1659404395471 implements MigrationInterface { + public async up(queryRunner: QueryRunner): Promise { + await queryRunner.createTable( + new Table({ + name: 'routes', + columns: [ + { + name: 'id_route', + type: 'integer', + isPrimary: true, + isGenerated: true, + generationStrategy: 'increment', + }, + { + name: 'van_plate', + type: 'varchar', + }, + { + name: 'price', + type: 'float', + }, + { + name: 'estimated_departure_time', + type: 'time', + }, + { + name: 'estimated_arrival_time', + type: 'time', + }, + { + name: 'available_seats', + type: 'integer', + }, + { + name: 'created_at', + type: 'timestamp', + default: 'now()', + }, + { + name: 'updated_at', + type: 'timestamp', + default: 'now()', + }, + ], + }), + ); + } + + public async down(queryRunner: QueryRunner): Promise { + await queryRunner.dropTable('routes'); + } +} diff --git a/src/database/migrations/1660009211327-CreateNeighborhoodsServed.ts b/src/database/migrations/1660009211327-CreateNeighborhoodsServed.ts new file mode 100644 index 0000000..5d17ece --- /dev/null +++ b/src/database/migrations/1660009211327-CreateNeighborhoodsServed.ts @@ -0,0 +1,42 @@ +import { MigrationInterface, QueryRunner, Table } from 'typeorm'; + +export class CreateNeighborhoodsServed1660009211327 + implements MigrationInterface +{ + public async up(queryRunner: QueryRunner): Promise { + await queryRunner.createTable( + new Table({ + name: 'neighborhoods_served', + columns: [ + { + name: 'id_neighborhood', + type: 'integer', + isPrimary: true, + isGenerated: true, + generationStrategy: 'increment', + }, + { + name: 'route_id', + type: 'integer', + }, + { + name: 'name', + type: 'varchar', + }, + { + name: 'latitude', + type: 'numeric', + }, + { + name: 'longitude', + type: 'numeric', + } + ], + }), + ); + } + + public async down(queryRunner: QueryRunner): Promise { + await queryRunner.dropTable('neighborhoods_served'); + } +} diff --git a/src/database/migrations/1660009323138-CreateDestinations.ts b/src/database/migrations/1660009323138-CreateDestinations.ts new file mode 100644 index 0000000..9150f69 --- /dev/null +++ b/src/database/migrations/1660009323138-CreateDestinations.ts @@ -0,0 +1,42 @@ +import {MigrationInterface, QueryRunner, Table} from "typeorm"; + +export class CreateDestinations1660009323138 implements MigrationInterface { + + public async up(queryRunner: QueryRunner): Promise { + await queryRunner.createTable( + new Table({ + name: 'destinations', + columns: [ + { + name: 'id_destination', + type: 'integer', + isPrimary: true, + isGenerated: true, + generationStrategy: 'increment', + }, + { + name: 'route_id', + type: 'integer', + }, + { + name: 'name', + type: 'varchar', + }, + { + name: 'latitude', + type: 'numeric', + }, + { + name: 'longitude', + type: 'numeric', + } + ], + }), + ); + } + + public async down(queryRunner: QueryRunner): Promise { + await queryRunner.dropTable('destinations'); + } + +} diff --git a/src/database/migrations/1660010452826-CreatePassengers.ts b/src/database/migrations/1660010452826-CreatePassengers.ts new file mode 100644 index 0000000..c1753c3 --- /dev/null +++ b/src/database/migrations/1660010452826-CreatePassengers.ts @@ -0,0 +1,34 @@ +import {MigrationInterface, QueryRunner, Table} from "typeorm"; + +export class CreatePassengers1660010452826 implements MigrationInterface { + + public async up(queryRunner: QueryRunner): Promise { + await queryRunner.createTable( + new Table({ + name: 'passengers', + columns: [ + { + name: 'id_passenger', + type: 'integer', + isPrimary: true, + isGenerated: true, + generationStrategy: 'increment', + }, + { + name: 'route_id', + type: 'integer', + }, + { + name: 'user_id', + type: 'uuid', + } + ], + }), + ); + } + + public async down(queryRunner: QueryRunner): Promise { + await queryRunner.dropTable('passengers'); + } + +} diff --git a/src/database/migrations/1660010491828-CreateRouteHistory.ts b/src/database/migrations/1660010491828-CreateRouteHistory.ts new file mode 100644 index 0000000..35680c8 --- /dev/null +++ b/src/database/migrations/1660010491828-CreateRouteHistory.ts @@ -0,0 +1,38 @@ +import {MigrationInterface, QueryRunner, Table} from "typeorm"; + +export class CreateRouteHistory1660010491828 implements MigrationInterface { + + public async up(queryRunner: QueryRunner): Promise { + await queryRunner.createTable( + new Table({ + name: 'route_historic', + columns: [ + { + name: 'id_historic', + type: 'integer', + isPrimary: true, + isGenerated: true, + generationStrategy: 'increment', + }, + { + name: 'route_id', + type: 'integer', + }, + { + name: 'user_id', + type: 'uuid', + }, + { + name: 'date', + type: 'date', + }, + ], + }), + ); + } + + public async down(queryRunner: QueryRunner): Promise { + await queryRunner.dropTable('route_historic'); + } + +}