forge->addField([ 'TestSiteID' => ['type' => 'INT', 'auto_increment' => true, 'unsigned' => true], 'SiteID' => ['type' => 'INT', 'null' => false], 'TestSiteCode' => ['type' => 'varchar', 'constraint'=> 6, 'null' => false], 'TestSiteName' => ['type' => 'varchar', 'constraint'=> 100, 'null' => false], 'TestType' => ['type' => 'int', 'null' => false], 'Description' => ['type' => 'varchar', 'constraint'=> 255, 'null' => true], 'SeqScr' => ['type' => 'int', 'null' => true], 'SeqRpt' => ['type' => 'int', 'null' => true], 'IndentLeft' => ['type' => 'int', 'null' => true, 'default' => 0], 'FontStyle' => ['type' => 'varchar', 'constraint'=> 50, 'null' => true], 'VisibleScr' => ['type' => 'int', 'null' => true, 'default' => 1], 'VisibleRpt' => ['type' => 'int', 'null' => true, 'default' => 1], 'CountStat' => ['type' => 'int', 'null' => true, 'default' => 1], 'CreateDate' => ['type' => 'Datetime', 'null' => true], 'StartDate' => ['type' => 'Datetime', 'null' => true], 'EndDate' => ['type' => 'Datetime', 'null' => true], ]); $this->forge->addKey('TestSiteID', true); $this->forge->createTable('testdefsite'); // testdeftech - Technical definition for TEST and PARAM types $this->forge->addField([ 'TestTechID' => ['type' => 'INT', 'auto_increment' => true, 'unsigned' => true], 'TestSiteID' => ['type' => 'INT', 'unsigned' => true, 'null' => false], 'DisciplineID' => ['type' => 'int', 'null' => true], 'DepartmentID' => ['type' => 'int', 'null' => true], 'ResultType' => ['type' => 'varchar', 'constraint'=> 20, 'null' => true], 'RefType' => ['type' => 'varchar', 'constraint'=> 10, 'null' => true], 'VSet' => ['type' => 'int', 'null' => true], 'ReqQty' => ['type' => 'DECIMAL', 'constraint'=> '10,2', 'null' => true], 'ReqQtyUnit' => ['type' => 'varchar', 'constraint'=> 20, 'null' => true], 'Unit1' => ['type' => 'varchar', 'constraint'=> 20, 'null' => true], 'Factor' => ['type' => 'DECIMAL', 'constraint'=> '10,4', 'null' => true], 'Unit2' => ['type' => 'varchar', 'constraint'=> 20, 'null' => true], 'Decimal' => ['type' => 'int', 'null' => true, 'default' => 2], 'CollReq' => ['type' => 'varchar', 'constraint'=> 255, 'null' => true], 'Method' => ['type' => 'varchar', 'constraint'=> 50, 'null' => true], 'ExpectedTAT' => ['type' => 'INT', 'null' => true], 'CreateDate' => ['type' => 'Datetime', 'null' => true], 'EndDate' => ['type' => 'Datetime', 'null' => true] ]); $this->forge->addKey('TestTechID', true); $this->forge->addForeignKey('TestSiteID', 'testdefsite', 'TestSiteID', 'CASCADE', 'CASCADE'); $this->forge->createTable('testdeftech'); // testdefcal - Calculation definition for CALC type $this->forge->addField([ 'TestCalID' => ['type' => 'INT', 'auto_increment' => true, 'unsigned' => true], 'TestSiteID' => ['type' => 'INT', 'unsigned' => true, 'null' => false], 'DisciplineID' => ['type' => 'INT', 'null' => true], 'DepartmentID' => ['type' => 'INT', 'null' => true], 'FormulaInput' => ['type' => 'text', 'null' => true], 'FormulaCode' => ['type' => 'varchar', 'constraint'=> 255, 'null' => true], 'RefType' => ['type' => 'varchar', 'constraint'=> 10, 'null' => true, 'default' => 'NMRC'], 'Unit1' => ['type' => 'varchar', 'constraint'=> 20, 'null' => true], 'Factor' => ['type' => 'DECIMAL', 'constraint'=> '10,4', 'null' => true], 'Unit2' => ['type' => 'varchar', 'constraint'=> 20, 'null' => true], 'Decimal' => ['type' => 'int', 'null' => true, 'default' => 2], 'Method' => ['type' => 'varchar', 'constraint'=> 50, 'null' => true], 'CreateDate' => ['type' => 'Datetime', 'null' => true], 'EndDate' => ['type' => 'Datetime', 'null' => true] ]); $this->forge->addKey('TestCalID', true); $this->forge->addForeignKey('TestSiteID', 'testdefsite', 'TestSiteID', 'CASCADE', 'CASCADE'); $this->forge->createTable('testdefcal'); // testdefgrp - Group definition for GROUP type $this->forge->addField([ 'TestGrpID' => ['type' => 'INT', 'auto_increment' => true, 'unsigned' => true], 'TestSiteID' => ['type' => 'INT', 'unsigned' => true, 'null' => false], 'Member' => ['type' => 'INT', 'unsigned' => true, 'null' => true], 'CreateDate' => ['type' => 'Datetime', 'null' => true], 'EndDate' => ['type' => 'Datetime', 'null' => true] ]); $this->forge->addKey('TestGrpID', true); $this->forge->addForeignKey('TestSiteID', 'testdefsite', 'TestSiteID', 'CASCADE', 'CASCADE'); $this->forge->addForeignKey('Member', 'testdefsite', 'TestSiteID', 'CASCADE', 'CASCADE'); $this->forge->createTable('testdefgrp'); // testmap - Test mapping for all types $this->forge->addField([ 'TestMapID' => ['type' => 'INT', 'auto_increment' => true, 'unsigned' => true], 'TestSiteID' => ['type' => 'INT', 'unsigned' => true, 'null' => false], 'HostType' => ['type' => 'varchar', 'constraint'=> 20, 'null' => true], 'HostID' => ['type' => 'varchar', 'constraint'=> 50, 'null' => true], 'HostDataSource' => ['type' => 'varchar', 'constraint'=> 50, 'null' => true], 'HostTestCode' => ['type' => 'varchar', 'constraint'=> 10, 'null' => true], 'HostTestName' => ['type' => 'varchar', 'constraint'=> 100, 'null' => true], 'ClientType' => ['type' => 'varchar', 'constraint'=> 20, 'null' => true], 'ClientID' => ['type' => 'varchar', 'constraint'=> 50, 'null' => true], 'ClientDataSource' => ['type' => 'varchar', 'constraint'=> 50, 'null' => true], 'ConDefID' => ['type' => 'INT', 'null' => true], 'ClientTestCode' => ['type' => 'varchar', 'constraint'=> 10, 'null' => true], 'ClientTestName' => ['type' => 'varchar', 'constraint'=> 100, 'null' => true], 'CreateDate' => ['type' => 'Datetime', 'null' => true], 'EndDate' => ['type' => 'Datetime', 'null' => true] ]); $this->forge->addKey('TestMapID', true); $this->forge->addForeignKey('TestSiteID', 'testdefsite', 'TestSiteID', 'CASCADE', 'CASCADE'); $this->forge->createTable('testmap'); } public function down() { $this->forge->dropTable('testdefsite'); $this->forge->dropTable('testdeftech'); $this->forge->dropTable('testdefcal'); $this->forge->dropTable('testdefgrp'); $this->forge->dropTable('testmap'); } }