getEnvironment() == "thetool") { // Create Tables $WarehouseShippingNoteTextElement = $this->table("WarehouseShippingNoteTextElement", ["signed" => true]); $WarehouseShippingNoteTextElement ->addColumn('title', 'string', ['null' => false]) ->addColumn('content', 'text', ['null' => false]) ->addColumn('create', 'integer', ['null' => false, 'default' => 1728541890]) ->addColumn('createBy', 'integer', ['null' => false, 'default' => 1]) ->create(); $WarehouseShippingNote = $this->table("WarehouseShippingNote", ["signed" => true]); $WarehouseShippingNote ->addColumn('billingAddressId', 'integer', ['null' => false]) ->addColumn('deliveryAddressName', 'string', ['null' => false]) ->addColumn('deliveryAddressLine', 'string', ['null' => false]) ->addColumn('deliveryAddressPLZ', 'string', ['null' => false]) ->addColumn('deliveryAddressCity', 'string', ['null' => false]) ->addColumn('status', 'enum', ['values' => ['new', 'accepted', 'invoiced'], 'null' => false]) ->addColumn('positions', 'text', ['null' => false]) ->addColumn('textElements', 'text', ['null' => false]) ->addColumn('create', 'integer', ['null' => false, 'default' => 1728541890]) ->addColumn('createBy', 'integer', ['null' => false, 'default' => 1]) ->create(); $WarehouseOrder = $this->table("WarehouseOrder", ["signed" => true]); $WarehouseOrder ->addColumn('distributorId', 'integer', ['null' => false]) ->addColumn('intRef', 'string', ['null' => true]) ->addColumn('extRef', 'string', ['null' => true]) ->addColumn('status', 'enum', ['values' => ['new', 'accepted', 'sent', 'done'], 'null' => false, 'default' => 'new']) ->addColumn('sum', 'float', ['null' => true]) ->addColumn('trackingNumber', 'string', ['null' => true]) ->addColumn('create', 'integer', ['null' => false, 'default' => 1728541890]) ->addColumn('createBy', 'integer', ['null' => false, 'default' => 1]) ->create(); $WarehouseOrderItem = $this->table("WarehouseOrderItem", ["signed" => true]); $WarehouseOrderItem ->addColumn('orderId', 'integer', ['null' => false]) ->addColumn('articleId', 'integer', ['null' => false]) ->addColumn('quantity', 'integer', ['null' => false]) ->addColumn('price', 'float', ['null' => false]) ->addForeignKey('orderId', 'WarehouseOrder', 'id') ->addForeignKey('articleId', 'WarehouseArticle', 'id') ->create(); // Delete Table $WarehouseRevenueAccount = $this->table("WarehouseRevenueAccount"); $WarehouseRevenueAccount->drop()->save(); // Modify Tables $WarehouseLocation = $this->table("WarehouseLocation"); $WarehouseLocation ->addColumn('description', 'text', ['null' => true]) ->addColumn('createBy', 'integer', ['null' => false, 'default' => 1728541890]) ->addColumn('create', 'integer', ['null' => false, 'default' => 1]) ->update(); $WarehouseItem = $this->table("WarehouseItem"); $WarehouseItem ->changeColumn('quantity', 'integer', ['null' => true]) ->addColumn('rack', 'string', ['null' => true]) ->addColumn('shelf', 'string', ['null' => true]) ->addColumn('createBy', 'integer', ['null' => false, 'default' => 1728541890]) ->addColumn('create', 'integer', ['null' => false, 'default' => 1]) ->update(); $WarehouseArticlePriceType = $this->table("WarehouseArticlePriceType"); $WarehouseArticlePriceType ->addColumn('description', 'string', ['null' => true]) ->addColumn('defaultPriceFactor', 'float', ['null' => true]) ->addColumn('createBy', 'integer', ['null' => false, 'default' => 1728541890]) ->addColumn('create', 'integer', ['null' => false, 'default' => 1]) ->update(); // Set nullable createBy and create columns $WarehouseLocation ->changeColumn('createBy', 'integer', ['null' => true]) ->changeColumn('create', 'integer', ['null' => true]) ->save(); $WarehouseItem ->changeColumn('createBy', 'integer', ['null' => true]) ->changeColumn('create', 'integer', ['null' => true]) ->save(); $WarehouseArticlePriceType ->changeColumn('createBy', 'integer', ['null' => true]) ->changeColumn('create', 'integer', ['null' => true]) ->save(); } } public function down(): void { if ($this->getEnvironment() == "thetool") { // Drop created tables $this->table('WarehouseShippingNoteTextElement')->drop()->save(); $this->table('WarehouseShippingNote')->drop()->save(); $this->table('WarehouseOrder')->drop()->save(); $this->table('WarehouseOrderItem')->drop()->save(); // Recreate deleted table $WarehouseRevenueAccount = $this->table("WarehouseRevenueAccount"); $WarehouseRevenueAccount ->addColumn('revenueAccountNumber', 'integer', ['null' => false]) ->addColumn('title', 'string', ['null' => false]) ->create(); // Revert modifications $WarehouseLocation = $this->table("WarehouseLocation"); $WarehouseLocation ->removeColumn('description') ->removeColumn('createBy') ->removeColumn('create') ->update(); $WarehouseItem = $this->table("WarehouseItem"); $WarehouseItem ->changeColumn('quantity', 'integer', ['null' => false]) ->removeColumn('rack') ->removeColumn('shelf') ->removeColumn('createBy') ->removeColumn('create') ->update(); $WarehouseArticlePriceType = $this->table("WarehouseArticlePriceType"); $WarehouseArticlePriceType ->removeColumn('description') ->removeColumn('defaultPriceFactor') ->removeColumn('createBy') ->removeColumn('create') ->update(); } } }