import { MigrationInterface , QueryRunner , Table } from 'typeorm' ; export class CreateProductTable1546528787878 implements MigrationInterface { public async up ( queryRunner ) { const table = new Table ( { name : 'product' , columns : [ { name : 'product_id' , type : 'integer' , length : '11' , isGenerated : true , generationStrategy : 'increment' , isPrimary : true , isNullable : false , } , { name : 'sku' , type : 'varchar' , length : '64' , isPrimary : false , isNullable : true , } , { name : 'upc' , type : 'varchar' , length : '12' , isPrimary : false , isNullable : true , } , { name : 'quantity' , type : 'integer' , length : '4' , isPrimary : false , isNullable : true , } , { name : 'stock_status_id' , type : 'integer' , length : '11' , isPrimary : false , isNullable : false , } , { name : 'image' , type : 'varchar' , length : '255' , isPrimary : false , isNullable : true , } , { name : 'image_path' , type : 'TEXT' , isPrimary : false , isNullable : true , } , { name : 'manufacturer_id' , type : 'integer' , length : '11' , isPrimary : false , isNullable : true , } , { name : 'shipping' , type : 'TINYINT' , length : '4' , isPrimary : false , isNullable : true , } , { name : 'price' , type : 'DECIMAL' , isPrimary : false , isNullable : false , } , { name : 'date_available' , type : 'DATE' , isPrimary : false , isNullable : true , } , { name : 'sort_order' , type : 'integer' , length : '11' , isPrimary : false , isNullable : true , } , { name : 'name' , type : 'varchar' , length : '255' , isPrimary : false , isNullable : true , } , { name : 'description' , type : 'TEXT' , isPrimary : false , isNullable : true , } , { name : 'amount' , type : 'FLOAT' , isPrimary : false , isNullable : true , } , { name : 'meta_tag_title' , type : 'varchar' , length : '255' , isPrimary : false , isNullable : true , } , { name : 'meta_tag_description' , type : 'varchar' , length : '255' , isPrimary : false , isNullable : true , } , { name : 'meta_tag_keyword' , type : 'varchar' , length : '255' , isPrimary : false , isNullable : true , } , { name : 'discount' , type : 'int' , length : '11' , isPrimary : false , isNullable : true , } , { name : 'subtract_stock' , type : 'int' , length : '11' , isPrimary : false , isNullable : true , } , { name : 'minimum_quantity' , type : 'int' , length : '11' , isPrimary : false , isNullable : true , } , { name : 'location' , type : 'varchar' , length : '255' , isPrimary : false , isNullable : true , } , { name : 'today_deals' , type : 'int' , length : '11' , isPrimary : false , isNullable : true , } , { name : 'delete_flag' , type : 'int' , isPrimary : false , isNullable : true , default : 0 , } , { name : 'condition' , type : 'int' , length : '11' , isPrimary : false , isNullable : true , } , { name : 'is_active' , type : 'int' , length : '11' , isPrimary : false , isNullable : true , } , { name : 'created_by' , type : 'integer' , length : '11' , isPrimary : false , isNullable : true , } , { name : 'modified_by' , type : 'integer' , length : '11' , isPrimary : false , isNullable : true , } , { name : 'created_date' , type : 'DATETIME' , isPrimary : false , isNullable : true , default : 'CURRENT_TIMESTAMP' , } , { name : 'modified_date' , type : 'DATETIME' , isPrimary : false , isNullable : true , default : 'CURRENT_TIMESTAMP' , } , ] , } ) ; const ifExsist = await queryRunner . hasTable ( 'product' ) ; if ( ! ifExsist ) { await queryRunner . createTable ( table ) ; } } public async down ( queryRunner ) { await queryRunner . dropTable ( 'product' , true ) ; } }