public function testSchemaSetsIndexAndIdentifierWhenAutoIncrementAdded()
 {
     $schema = new MySqlModelSchema("tblTest");
     $schema->addColumn(new AutoIncrement("TestID"));
     $this->assertEquals("TestID", $schema->uniqueIdentifierColumnName);
     $this->assertEquals(Index::PRIMARY, $schema->indexes["Primary"]->indexType);
 }
 public function testColumnSetsIndex()
 {
     $schema = new MySqlModelSchema("tblTest");
     $schema->addColumn(new ForeignKey("CompanyID"));
     $this->assertCount(1, $schema->indexes);
     $this->assertArrayHasKey("CompanyID", $schema->indexes);
 }
Example #3
0
 /**
  * Returns the schema for this data object.
  *
  * @return \Rhubarb\Stem\Schema\ModelSchema
  */
 protected function createSchema()
 {
     $schema = new MySqlModelSchema("tblCompany");
     $schema->uniqueIdentifierColumnName = "CompanyID";
     $schema->addColumn(new AutoIncrement("CompanyID"), new String("CompanyName", 200), new Money("Balance"), new Date("InceptionDate"), new DateTime("LastUpdatedDate"), new Time("KnockOffTime"), new Boolean("BlueChip", false), new Integer("ProjectCount"), new Json("CompanyData"), new Boolean("Active", true));
     $schema->addIndex(new Index("CompanyID", Index::PRIMARY));
     $schema->labelColumnName = "CompanyName";
     return $schema;
 }
 public static function fromMySqlSchema(MySqlModelSchema $schema)
 {
     $comparisonSchema = new MySqlComparisonSchema();
     $columns = $schema->getColumns();
     foreach ($columns as $column) {
         // The column might be using more generic types for it's storage.
         $storageColumns = $column->createStorageColumns();
         foreach ($storageColumns as $storageColumn) {
             // And if so that column will be a generic column type - we need to upgrade it.
             $storageColumn = $storageColumn->getRepositorySpecificColumn("MySql");
             $comparisonSchema->columns[$storageColumn->columnName] = $storageColumn->getDefinition();
         }
     }
     $indexes = $schema->indexes;
     foreach ($indexes as $index) {
         $comparisonSchema->indexes[] = $index->getDefinition();
     }
     return $comparisonSchema;
 }