Example #1
0
 public function create(MidataTable $table)
 {
     // columns
     $ddlColumn = MidataDDL::factory($table->adapter(), MidataDDL::COLUMN);
     $tableName = $table->name();
     $sql = "CREATE TABLE `{$tableName}`(";
     $name = $table->column("name");
     foreach ($table->columns() as $column) {
         $column = $table->column($column);
         $inline = $ddlColumn->inline($column);
         $sql = "{$sql}\n    {$inline},";
     }
     // constraints
     $ddlConstraint = MidataDDL::factory($table->adapter(), MidataDDL::CONSTRAINT);
     foreach ($table->constraints() as $constraint) {
         $constraint = $table->constraint($constraint);
         $inline = $ddlConstraint->inline($constraint);
         $sql = "{$sql}\n    {$inline},";
     }
     // indexes
     $ddlIndex = MidataDDL::factory($table->adapter(), MidataDDL::INDEX);
     foreach ($table->indexes() as $index) {
         $index = $table->index($index);
         $inline = $ddlIndex->inline($index);
         $sql = "{$sql}\n    {$inline},";
     }
     $sql = trim($sql, ',');
     $sql .= "\n)";
     return "{$sql};";
 }