Completed
Push — master ( dc7866...8155ff )
by Changwan
06:46
created

MigrationTemplate   A

Complexity

Total Complexity 1

Size/Duplication

Total Lines 44
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 0

Importance

Changes 0
Metric Value
dl 0
loc 44
rs 10
c 0
b 0
f 0
wmc 1
lcom 0
cbo 0

1 Method

Rating   Name   Duplication   Size   Complexity  
B template() 0 38 1
1
<?php
2
namespace Wandu\Database\Migrator;
3
4
use Wandu\Database\Contracts\Migrator\MigrationTemplateInterface;
5
6
class MigrationTemplate implements MigrationTemplateInterface
7
{
8
    /**
9
     * {@inheritdoc}
10
     */
11
    public function template($migrateName)
12
    {
13
        return <<<PHP
14
<?php
15
16
use Wandu\Database\Contracts\ConnectionInterface;
17
use Wandu\Database\Migrator\Migration;
18
use Wandu\Database\Query\CreateQuery;
19
use Wandu\Database\Query\Expression\RawExpression;
20
21
class {$migrateName} extends Migration 
22
{
23
    /**
24
     * {@inheritdoc}
25
     */
26
    public function migrate(ConnectionInterface \$connection)
27
    {
28
        \$connection->query(\$connection->createQueryBuilder('somethings')->create(function (CreateQuery \$table) {
29
            \$table->bigInteger('id')->unsigned()->autoIncrement();
30
31
            \$table->timestamp('created_at')->default(new RawExpression('CURRENT_TIMESTAMP'));
32
            \$table->addColumn(new RawExpression('`updated_at` TIMESTAMP DEFAULT now() ON UPDATE now()'));
33
34
            \$table->primaryKey('id');
35
        }));
36
    }
37
38
    /**
39
     * {@inheritdoc}
40
     */
41
    public function rollback(ConnectionInterface \$connection)
42
    {
43
        \$connection->query(\$connection->createQueryBuilder('somethings')->drop());
44
    }
45
}
46
47
PHP;
48
    }
49
}
50