Issues (14)

migrations/m161228_100819_init.php (1 issue)

1
<?php
2
3
class m161228_100819_init extends \yii\db\Migration
4
{
5
    use \carono\yii2migrate\traits\MigrationTrait;
0 ignored issues
show
The trait carono\yii2migrate\traits\MigrationTrait requires some properties which are not provided by m161228_100819_init: $isPrimaryKey, $precision, $size, $tablePrefix, $scale, $driverName, $columnNames, $allowNull, $comment, $type, $autoIncrement, $defaultValue
Loading history...
6
7
    public $tableName = '{{%file_upload}}';
8
9
    public function newTables()
10
    {
11
        return [
12
            $this->tableName => [
13
                'id' => $this->primaryKey(),
14
                'uid' => $this->string(32)->unique()->comment('Уникальный идентификатор, используется для содания директорий хранения'),
15
                'user_id' => $this->integer()->comment('Текущий пользователь, который сохраняет файл'),
16
                'name' => $this->string()->comment('Имя файла, без расширения'),
17
                'extension' => $this->string()->comment('Расширение'),
18
                'folder' => $this->string()->comment('Папка, где хранится файл, можно использовать @алиасы'),
19
                'mime_type' => $this->string()->comment('Mime Type по содержимому файла'),
20
                'size' => $this->integer()->comment('Размер файла'),
21
                'data' => $this->text()->comment('Произвольные данные'),
22
                'session' => $this->string()->comment('Сессия текущего пользователя'),
23
                'md5' => $this->string(32)->comment('MD5 по содержимому файла'),
24
                'slug' => $this->string()->comment('Произвольный слаг'),
25
                'is_active' => $this->boolean()->notNull()->defaultValue(true),
26
                'is_exist' => $this->boolean()->notNull()->defaultValue(true)->comment('Существование реального файла'),
27
                'binary' => $this->binary()->comment('Файл хранится в базе (на данный момент не используется)'),
28
                'created_at' => $this->dateTime()->comment('Дата создания'),
29
                'updated_at' => $this->dateTime()->comment('Дата обновления')
30
            ]
31
        ];
32
    }
33
34
    public function newIndex()
35
    {
36
        return [
37
            [$this->tableName, ['is_active', 'is_exist']],
38
            [$this->tableName, 'slug'],
39
        ];
40
    }
41
42
    public function safeUp()
43
    {
44
        if ($this->db->driverName === 'mysql') {
45
            $tableOptions = 'CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE=InnoDB';
46
        } else {
47
            $tableOptions = null;
48
        }
49
        $this->upNewTables([], $tableOptions);
50
        $this->upNewIndex();
51
    }
52
53
    public function safeDown()
54
    {
55
        $this->downNewTables();
56
    }
57
}
58