Exemplo n.º 1
0
function createTableTasks($schema)
{
    try {
        $table = $schema->createTable('tasks');
    } catch (\Exception $e) {
        $table = $schema->getTable('tasks');
    }
    $columns = [0 => 'task_id', 1 => 'task_type', 2 => 'task_payload', 3 => 'task_status', 4 => 'task_handle'];
    foreach (array_keys($table->Getcolumns()) as $column) {
        if (!in_array($column, $columns)) {
            $table->dropColumn($column);
        }
    }
    try {
        $table->addColumn('task_id', 'integer', ['notnull' => false, 'autoincrement' => true, 'default' => NULL]);
    } catch (\Exception $e) {
        $column = $table->GetColumn('task_id');
        $column->setType(Type::GetType('integer'));
    }
    try {
        $table->addColumn('task_type', 'string', ['notnull' => false, 'length' => 40, 'default' => NULL]);
    } catch (\Exception $e) {
        $column = $table->GetColumn('task_type');
        $column->setType(Type::GetType('string'));
    }
    try {
        $table->addColumn('task_payload', 'text', ['notnull' => false, 'default' => NULL]);
    } catch (\Exception $e) {
        $column = $table->GetColumn('task_payload');
        $column->setType(Type::GetType('text'));
    }
    try {
        $table->addColumn('task_status', 'integer', ['notnull' => false, 'default' => 1]);
    } catch (\Exception $e) {
        $column = $table->GetColumn('task_status');
        $column->setType(Type::GetType('integer'));
    }
    try {
        $table->addColumn('task_handle', 'string', ['notnull' => false, 'length' => 20, 'default' => '']);
    } catch (\Exception $e) {
        $column = $table->GetColumn('task_handle');
        $column->setType(Type::GetType('string'));
    }
    $table->setPrimaryKey([0 => 'task_id']);
    $table->addIndex([0 => 'task_handle', 1 => 'task_status']);
    $table->addIndex([0 => 'task_handle', 1 => 'task_type']);
}