123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268 |
- <?php
- use 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');
- }
- }
|