【www.bbyears.com--php安装】
下面是在Mac下使用 Yii 2 migrate 命令安装初始化数据库:
必须首先有PHP系统环境变量,才能执行Yii命令行。在终端输入:php yii,即列出所有可用的Yii命令。
输入php yii migrate,它会自动列出可用的migrate文件,这里只有一个文件,它会自动去/console/migrations/文件夹去寻找migrate数据库迁徙文件。当我们输入yes,也就执行了这个操作,应用这个migrate文件,就创建了数据表。如下图:
migrate迁徙文件:migrations/m130524_201442_init.php,以下是这个文件的代码:
代码如下
use yii\db\Schema;
use yii\db\Migration;
class m130524_201442_init extends Migration
{
public function up()
{
$tableOptions = null;
if ($this->db->driverName === "mysql") {
$tableOptions = "CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE=InnoDB";
}
$this->createTable("{{%user}}", [
"id" => Schema::TYPE_PK,
"username" => Schema::TYPE_STRING . " NOT NULL",
"auth_key" => Schema::TYPE_STRING . "(32) NOT NULL",
"password_hash" => Schema::TYPE_STRING . " NOT NULL",
"password_reset_token" => Schema::TYPE_STRING,
"email" => Schema::TYPE_STRING . " NOT NULL",
"status" => Schema::TYPE_SMALLINT . " NOT NULL DEFAULT 10",
"created_at" => Schema::TYPE_INTEGER . " NOT NULL",
"updated_at" => Schema::TYPE_INTEGER . " NOT NULL",
], $tableOptions);
}
public function down()
{
$this->dropTable("{{%user}}");
}
}
可见yii的migrate文件都需要实现up和down两个方法,顾名思义一个是安装,一个是删除数据表。
一个好的开发规范是把数据库结构写成migrate文件,包括初始化数据,这样在部署或者迁徙数据库的时候极为方便,也就是先麻烦,后爽快。