| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268 | <?phpuse yii\db\Migration;use yii\db\Schema;class m130524_201442_init extends Migration{    public $tableOptions = 'CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci ENGINE=InnoDB';    public function safeUp()    {        $this->execute('SET foreign_key_checks = 0');        // admin_log        $this->createTable('{{%admin_log}}', [            'id' => Schema::TYPE_PK,            'route' => Schema::TYPE_STRING . "(255) NOT NULL DEFAULT ''",            'description' => Schema::TYPE_TEXT . " NULL",            'created_at' => Schema::TYPE_INTEGER . "(10) NOT NULL",            'user_id' => Schema::TYPE_INTEGER . "(10) NOT NULL DEFAULT '0'",            'ip' => Schema::TYPE_BIGINT . "(20) NOT NULL DEFAULT '0'",        ], $this->tableOptions);// article        $this->createTable('{{%article}}', [            'id' => Schema::TYPE_PK,            'title' => Schema::TYPE_STRING . "(50) NOT NULL COMMENT '标题'",            'category' => Schema::TYPE_STRING . "(50) NOT NULL COMMENT '分类'",            'category_id' => Schema::TYPE_INTEGER . "(11) NOT NULL",            'status' => Schema::TYPE_BOOLEAN . " NOT NULL COMMENT '状态'",            'view' => Schema::TYPE_INTEGER . "(11) NOT NULL DEFAULT '0'",            'is_top' => $this->smallInteger(1)->notNull()->defaultValue(0)->comment('是否置顶'),            'is_hot' => $this->smallInteger(1)->notNull()->defaultValue(0)->comment('是否热门'),            'is_best' => $this->smallInteger(1)->notNull()->defaultValue(0)->comment('是否精华'),            'description' => $this->string(255)->notNull()->defaultValue('')->comment('摘要'),            'user_id' => Schema::TYPE_INTEGER . "(11) NOT NULL DEFAULT '0'",            'source' => $this->string(255)->notNull()->defaultValue('')->comment('来源'),            'deleted_at' => Schema::TYPE_INTEGER . "(10)",            'favourite' => Schema::TYPE_INTEGER . "(11) NOT NULL DEFAULT '0'",            'published_at' => Schema::TYPE_INTEGER . "(10) NOT NULL DEFAULT '0'",            'created_at' => Schema::TYPE_INTEGER . "(10) NOT NULL",            'updated_at' => Schema::TYPE_INTEGER . "(10) NOT NULL",        ], $this->tableOptions);        $this->createIndex('index_published_at', '{{%article}}', 'published_at');// article_data        $this->createTable('{{%article_data}}', [            'id' => Schema::TYPE_INTEGER . "(11) NOT NULL",            'content' => Schema::TYPE_TEXT . " NOT NULL",            'markdown' => $this->smallInteger(1)->notNull()->defaultValue(0)->comment('是否markdown格式'),            'PRIMARY KEY (id)',        ], $this->tableOptions);// article_tag        $this->createTable('{{%article_tag}}', [            'article_id' => Schema::TYPE_INTEGER . "(10) NOT NULL",            'tag_id' => Schema::TYPE_INTEGER . "(10) NOT NULL",        ], $this->tableOptions);// meta        $this->createTable('{{%meta}}', [            'id' => $this->primaryKey(),            'title' => $this->string(128),            'keywords' => $this->string(128),            'description' => $this->string(128),            'entity' => $this->string(80),            'entity_id' => $this->integer()        ], $this->tableOptions);// auth        $this->createTable('{{%auth}}', [            'id' => Schema::TYPE_PK,            'user_id' => Schema::TYPE_INTEGER . "(11) NOT NULL",            'source' => Schema::TYPE_STRING . "(255) NOT NULL",            'source_id' => Schema::TYPE_STRING . "(255) NOT NULL",        ], $this->tableOptions);// category        $this->createTable('{{%category}}', [            'id' => Schema::TYPE_PK,            'title' => Schema::TYPE_STRING . "(50) NOT NULL COMMENT '名字'",            'pid' => Schema::TYPE_INTEGER . "(11) NOT NULL DEFAULT '0' COMMENT '父id'",            'created_at' => Schema::TYPE_INTEGER . "(10) NOT NULL",            'updated_at' => Schema::TYPE_INTEGER . "(10) NOT NULL",            'slug' => Schema::TYPE_STRING . "(20) NOT NULL",            'description' => Schema::TYPE_STRING . "(1000) NOT NULL DEFAULT ''",            'article' => Schema::TYPE_INTEGER . "(10) NOT NULL DEFAULT '0'",            'sort' => Schema::TYPE_BOOLEAN . " NOT NULL DEFAULT '0'",            'allow_publish' => $this->smallInteger(1)->defaultValue('1')->comment('是否允许发布内容')        ], $this->tableOptions);// comment        $this->createTable('{{%comment}}', [            'id' => Schema::TYPE_PK,            'user_id' => Schema::TYPE_INTEGER . "(11) NOT NULL",            'user_ip' => $this->string(20)->comment('用户ip')->defaultValue(''),            'entity' => Schema::TYPE_STRING . "(80) NOT NULL",            'entity_id' => Schema::TYPE_INTEGER . "(11) NOT NULL",            'content' => Schema::TYPE_TEXT . " NOT NULL COMMENT '内容'",            'parent_id' => Schema::TYPE_INTEGER . "(11) NOT NULL DEFAULT '0'",            'reply_uid' => $this->integer(11)->defaultValue('0'),            'is_top' => Schema::TYPE_SMALLINT . "(1) NOT NULL DEFAULT '0'",            'status' => Schema::TYPE_SMALLINT . "(1) NOT NULL DEFAULT '1'",            'created_at' => Schema::TYPE_INTEGER . "(10) NOT NULL",            'updated_at' => Schema::TYPE_INTEGER . "(10) NOT NULL",        ], $this->tableOptions);        $this->createIndex('entity', '{{%comment}}', ['entity', 'entity_id']);// comment_info        $this->createTable('{{%comment_info}}', [            'id' => Schema::TYPE_PK,            'entity' => $this->string(80)->notNull(),            'entity_id' => $this->integer(11)->notNull(),            'status' => $this->boolean()->notNull()->defaultValue(1),            'total' => $this->integer(11)->notNull()        ], $this->tableOptions);        $this->createIndex('entity', '{{%comment_info}}', ['entity', 'entity_id']);// favourite        $this->createTable('{{%favourite}}', [            'id' => Schema::TYPE_PK,            'user_id' => Schema::TYPE_INTEGER . "(11) NOT NULL",            'article_id' => Schema::TYPE_INTEGER . "(11) NOT NULL",            'created_at' => Schema::TYPE_INTEGER . "(10) NOT NULL",        ], $this->tableOptions);// gather        $this->createTable('{{%gather}}', [            'id' => Schema::TYPE_PK,            'url_org' => Schema::TYPE_STRING . "(255) NOT NULL",            'created_at' => Schema::TYPE_INTEGER . "(10) NOT NULL",            'updated_at' => Schema::TYPE_INTEGER . "(10) NOT NULL",        ], $this->tableOptions);// page        $this->createTable('{{%page}}', [            'id' => Schema::TYPE_PK,            'use_layout' => Schema::TYPE_BOOLEAN . " NOT NULL DEFAULT '1' COMMENT '0:不使用1:使用'",            'content' => Schema::TYPE_TEXT . " NOT NULL COMMENT '内容'",            'title' => Schema::TYPE_STRING . "(50) NOT NULL COMMENT '标题'",            'slug' => Schema::TYPE_STRING . "(50) NOT NULL DEFAULT ''",            'markdown' => $this->smallInteger(1)->defaultValue(0)->comment('是否markdown格式'),            'created_at' => Schema::TYPE_INTEGER . "(10) NULL",            'updated_at' => Schema::TYPE_INTEGER . "(10) NULL",        ], $this->tableOptions);// reward        $this->createTable('{{%reward}}', [            'id' => Schema::TYPE_PK,            'article_id' => Schema::TYPE_INTEGER . "(11) NOT NULL",            'user_id' => Schema::TYPE_INTEGER . "(11) NOT NULL",            'money' => Schema::TYPE_INTEGER . "(11) NOT NULL",            'comment' => $this->string(50)->defaultValue('')->comment('留言'),            'created_at' => Schema::TYPE_INTEGER . "(10) NOT NULL",            'updated_at' => Schema::TYPE_INTEGER . "(10) NOT NULL",        ], $this->tableOptions);// sign_info 签到表        $this->createTable('{{%sign_info}}', [            'id' => Schema::TYPE_PK,            'user_id' => Schema::TYPE_INTEGER . "(11) NOT NULL",            'last_sign_at' => Schema::TYPE_INTEGER . "(10) NOT NULL COMMENT '上次签到时间'",            'times' => Schema::TYPE_INTEGER . "(11) NOT NULL COMMENT '总签到次数'",            'continue_times' => Schema::TYPE_INTEGER . "(11) NOT NULL COMMENT '连续签到次数'",        ], $this->tableOptions);// sign 签到表        $this->createTable('{{%sign}}', [            'id' => Schema::TYPE_PK,            'user_id' => Schema::TYPE_INTEGER . "(11) NOT NULL",            'sign_at' => Schema::TYPE_INTEGER . "(10) NOT NULL COMMENT '签到时间'",        ], $this->tableOptions);// spider        $this->createTable('{{%spider}}', [            'id' => Schema::TYPE_PK,            'name' => Schema::TYPE_STRING . "(20) NOT NULL COMMENT '标识'",            'title' => Schema::TYPE_STRING . "(100) NOT NULL COMMENT '名称'",            'domain' => Schema::TYPE_STRING . "(255) NOT NULL COMMENT '域名'",            'page_dom' => Schema::TYPE_STRING . "(255) NOT NULL COMMENT '分页链接元素'",            'list_dom' => Schema::TYPE_STRING . "(255) NOT NULL COMMENT '列表链接元素'",            'time_dom' => Schema::TYPE_STRING . "(255) NULL COMMENT '内容页时间元素'",            'content_dom' => Schema::TYPE_STRING . "(255) NOT NULL COMMENT '内容页内容元素'",            'title_dom' => Schema::TYPE_STRING . "(255) NOT NULL COMMENT '内容页标题元素'",            'target_category' => Schema::TYPE_STRING . "(255) NOT NULL COMMENT '目标分类'",            'target_category_url' => Schema::TYPE_STRING . "(255) NOT NULL COMMENT '目标分类地址'",        ], $this->tableOptions);// system_log        $this->createTable('{{%system_log}}', [            'id' => Schema::TYPE_BIGPK,            'level' => Schema::TYPE_INTEGER . "(11) NULL",            'category' => Schema::TYPE_STRING . "(255) NULL",            'log_time' => Schema::TYPE_DOUBLE . " NULL",            'prefix' => Schema::TYPE_TEXT . " NULL",            'message' => Schema::TYPE_TEXT . " NULL",        ], $this->tableOptions);// tag        $this->createTable('{{%tag}}', [            'id' => Schema::TYPE_PK,            'name' => Schema::TYPE_STRING . "(100) NOT NULL",            'article' => Schema::TYPE_INTEGER . "(11) NOT NULL DEFAULT '0' COMMENT '有该标签的文章数'",        ], $this->tableOptions);// vote        $this->createTable('{{%vote}}', [            'id' => Schema::TYPE_PK,            'entity' => Schema::TYPE_STRING . "(80) NOT NULL",            'entity_id' => Schema::TYPE_INTEGER . "(11) NOT NULL",            'user_id' => Schema::TYPE_INTEGER . "(11) NOT NULL",            'created_at' => Schema::TYPE_INTEGER . "(10) NOT NULL",            'updated_at' => Schema::TYPE_INTEGER . "(10) NOT NULL",            'action' => Schema::TYPE_STRING . "(20) NOT NULL DEFAULT 'up' COMMENT 'up or down'",        ], $this->tableOptions);//vote_info        $this->createTable('{{%vote_info}}', [            'id' => Schema::TYPE_PK,            'entity' => $this->string(80)->notNull(),            'entity_id' => $this->integer(11)->notNull(),            'up' => $this->integer(11)->notNull()->defaultValue('0')->comment('顶数'),            'down' => $this->integer(11)->notNull()->defaultValue('0')->comment('踩数'),        ], $this->tableOptions);        $this->createIndex('entity', '{{%vote_info}}', ['entity', 'entity_id']);// suggest        $this->createTable('{{%suggest}}', [            'title' => $this->string(128)->notNull(),            'content' => $this->string(1000)->notNull(),            'created_at' => $this->integer()->notNull(),            'user_id' => $this->integer(11)->notNull()        ]);        $this->insert('{{%page}}', [            'use_layout' => 1,            'content' => '关于我们',            'title' => '关于我们',            'slug' => 'aboutus',            'created_at' => time(),            'updated_at' => time()        ]);        $this->insert('{{%category}}', [            'slug' => 'default',            'title' => '默认',            'allow_publish' => '2',            'created_at' => time(),            'updated_at' => time()        ]);        $this->execute('SET foreign_key_checks = 1');    }    public function safeDown()    {        $this->execute('SET foreign_key_checks = 0');        $this->dropTable('{{%admin_log}}');        $this->dropTable('{{%article}}');        $this->dropTable('{{%article_data}}');        $this->dropTable('{{%article_tag}}');        $this->dropTable('{{%meta}}');        $this->dropTable('{{%auth}}');        $this->dropTable('{{%category}}');        $this->dropTable('{{%comment}}');        $this->dropTable('{{%comment_info}}');        $this->dropTable('{{%favourite}}');        $this->dropTable('{{%gather}}');        $this->dropTable('{{%page}}');        $this->dropTable('{{%reward}}');        $this->dropTable('{{%sign}}');        $this->dropTable('{{%spider}}');        $this->dropTable('{{%system_log}}');        $this->dropTable('{{%tag}}');        $this->dropTable('{{%vote}}');        $this->dropTable('{{%vote_info}}');        $this->execute('SET foreign_key_checks = 1');    }}
 |