getTable(), function (Table $table) { $table->setIfNotExists()->setTableComment($this->comment); //设置表名称 $table->setTableCharset(Character::UTF8MB4_GENERAL_CI);//设置表字符集 $table->colInt('id')->setIsAutoIncrement()->setIsPrimaryKey()->setIsUnsigned()->setColumnComment('主键id'); $table->colDateTime('created_at')->setDefaultValue("CURRENT_TIMESTAMP")->setColumnComment('创建时间'); $table->colDateTime('updated_at')->setDefaultValue("CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP")->setColumnComment('更新时间'); }); Db::query($sql); $ori_fields = $this->db()->getTableFields($this->getTable()); $new_fields = $this->generateTableField(); $start = $ori_fields[count($ori_fields) - 3]; foreach ($new_fields as $k => $v) { if (!in_array($k, $ori_fields)) { $sql = "ALTER TABLE {$this->getTable()} add $v AFTER $start"; Db::execute($sql); $start = $k; } } } abstract protected function generateTableField(): array; }