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); }
/** * 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; }