source/Spiral/ORM/Schemas/SchemaBuilder.php
protected function renderModels()
    {
        foreach ($this->schemas as $schema) {
            /**
             * Attention, this method will request table schema from DBAL and will empty it's state
             * so schema can define it from ground zero!
             */
            $table = $this->requestTable(
                $schema->getTable(),
                $schema->getDatabase(),
                true,
                true
            );

            //Render table schema
            $table = $schema->declareTable($table);

            //Working with indexes
            foreach ($schema->getIndexes() as $index) {
                $table->index($index->getColumns())->unique($index->isUnique());
                $table->index($index->getColumns())->setName($index->getName());
            }

            /*
             * Attention, this is critical section:
             *
             * In order to work efficiently (like for real), ORM does require every table
             * to have 1 and only 1 primary key, this is crucial for things like in memory
             * cache, transaction command priority pipeline, multiple queue commands for one entity
             * and etc.
             *
             * It is planned to support user defined PKs in a future using unique indexes and record
             * schema.
             *
             * You are free to select any name for PK field.
             */
            if (count($table->getPrimaryKeys()) !== 1) {
                throw new SchemaException(
                    "Every record must have singular primary key (primary, bigPrimary types)"
                );
            }

            //And put it back :)
            $this->pushTable($table);
        }
    }
protected function renderModels()
    {
        foreach ($this->schemas as $schema) {
            /**
             * Attention, this method will request table schema from DBAL and will empty it's state
             * so schema can define it from ground zero!
             */
            $table = $this->requestTable(
                $schema->getTable(),
                $schema->getDatabase(),
                true,
                true
            );

            //Render table schema
            $table = $schema->declareTable($table);

            //Working with indexes
            foreach ($schema->getIndexes() as $index) {
                $table->index($index->getColumns())->unique($index->isUnique());
                $table->index($index->getColumns())->setName($index->getName());
            }

            /*
             * Attention, this is critical section:
             *
             * In order to work efficiently (like for real), ORM does require every table
             * to have 1 and only 1 primary key, this is crucial for things like in memory
             * cache, transaction command priority pipeline, multiple queue commands for one entity
             * and etc.
             *
             * It is planned to support user defined PKs in a future using unique indexes and record
             * schema.
             *
             * You are free to select any name for PK field.
             */
            if (count($table->getPrimaryKeys()) !== 1) {
                throw new SchemaException(
                    "Every record must have singular primary key (primary, bigPrimary types)"
                );
            }

            //And put it back :)
            $this->pushTable($table);
        }
    }
protected function renderModels ( ) { foreach ( $ this -> schemas as $ schema ) { /**
             * Attention, this method will request table schema from DBAL and will empty it's state
             * so schema can define it from ground zero!
             */ $ table = $ this -> requestTable ( $ schema -> getTable ( ) , $ schema -> getDatabase ( ) , true , true ) ; //Render table schema $ table = $ schema -> declareTable ( $ table ) ; //Working with indexes foreach ( $ schema -> getIndexes ( ) as $ index ) { $ table -> index ( $ index -> getColumns ( ) ) -> unique ( $ index -> isUnique ( ) ) ; $ table -> index ( $ index -> getColumns ( ) ) -> setName ( $ index -> getName ( ) ) ; } /*
             * Attention, this is critical section:
             *
             * In order to work efficiently (like for real), ORM does require every table
             * to have 1 and only 1 primary key, this is crucial for things like in memory
             * cache, transaction command priority pipeline, multiple queue commands for one entity
             * and etc.
             *
             * It is planned to support user defined PKs in a future using unique indexes and record
             * schema.
             *
             * You are free to select any name for PK field.
             */ if ( count ( $ table -> getPrimaryKeys ( ) ) !== 1 ) { throw new SchemaException ( "Every record must have singular primary key (primary, bigPrimary types)" ) ; } //And put it back :) $ this -> pushTable ( $ table ) ; } }
Walk thought schemas and define structure of associated tables.

@throws SchemaException
@throws DBALException
Walk thought schemas and define structure of associated tables .