邓高鹃 2016-12-15 01:14:23 7048次浏览 3条评论 1 1 0

呲呲呲!邓高鹃听到这个声音把自己手上忙碌的项目停了下来,因为他知道群里有动静了。在第二天刚刚过几分的时间里。不是遇到问题就是有网友回答邓高鹃的问题。果然!以为网友回复了邓高鹃的问题。邓高鹃提到这样一个话题!

<?php
use yii\db\Migration;
class m130524_201442_init extends Migration
{
    public function up()
    {
        $tableOptions = null;
        if ($this->db->driverName === 'mysql'){
            // http://stackoverflow.com/questions/766809/whats-the-difference-between-utf8-general-ci-and-utf8-unicode-ci
            $tableOptions = 'CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE=InnoDB';
        }
        $this->createTable('{{%user}}',[
            'id' => $this->primaryKey(),
            'username' => $this->string()->notNull()->unique(),
            'auth_key' => $this->string(32)->notNull(),
            'password_hash' => $this->string()->notNull(),
            'password_reset_token' => $this->string()->unique(),
            'email' => $this->string()->notNull()->unique(),
            'status' => $this->smallInteger()->notNull()->defaultValue(10),
            'created_at' => $this->integer()->notNull(),
            'updated_at' => $this->integer()->notNull(),
        ], $tableOptions);
    }
    public function down()
    {
        $this->dropTable('{{%user}}');
    }
}

邓高鹃提到!上面的字段好像写的很好,用什么办法执行呢?邓高鹃发完这个话题有忙他的项目,现在有网友回答终于解开了他的谜团。高鹃习惯性的加这个网友为好友。只要是帮助邓高鹃或是被邓高鹃帮助过的人,自己都会主动的加对方为好友,解决的问题都会写一篇文章出来。并且了解他们工作在哪里,老家是哪里的,这就是邓高鹃。

第一步:用cmd进入项目的根目录(因为我这里是在本地的)。注意:不是前台的跟目录也不是后台的根目录,是项目的根目录。我截图出来吧!

F:\WWW\YII2_Chinesize

WWW是我网站的根目录,YII2_Chinesize是我项目的根目录。

第二步:执行

F:\WWW\YII2_Chinesize>./yii migrate

报错:不是内部文件!问网友!网友建议执行

F:\WWW\YII2_Chinesize>./yii.bat migrate

报错:不是内部文件!问网友!网友建议执行

F:\WWW\YII2_Chinesize>yii.bat migrate

报错:可以执行,报的是数据库密码没有配置.
大家千万注意:上面的方法可能面对的不同的环境。网友能执行,邓高鹃那里执行不了的,绝对不是邓高鹃的人品问题,大家一定要相信。

报数据库错我们就配置数据库呗!高鹃屁颠屁颠的打开:

F:\WWW\YII2_Chinesize\common\config\main-local.php

配置了数据库名,用户名,密码。

在到cmd执行:

F:\WWW\YII2_Chinesize>yii.bat migrate

还是报错!提示没有找到数据库!!可是数据库明明配置了。邓高鹃深深呼了口气!心想哪里错了?面对新的事物不知道就要慢慢去悟。
邓高鹃高估了YII2,还是小看了它!原来邓高鹃认为:执行上面的命令,数据库、表都给一次键好。然后邓高鹃还是看了配置项的数据库名,然后自己配置了一个数据库。再次执行!!

F:\WWW\YII2_Chinesize>yii.bat migrate

出现下面的选项:

Apply the above migration? (yes|no) [no]:y

输入:y
按回车!
查看数据库的表!果然有我们的表!

最后邓高鹃还是相信YII2.0的强大,在哪里思考为什么不可以连数据库也键好呢?各种google、各种百度!但是他手上还有项目。半个小时过去了。找不到方法。所以在这里。希望各位网友大神。帮帮这个熬夜写文章的孩子!!!

觉得很赞
  • 评论于 2016-12-16 10:16 举报

    邓高鹃,你不是通过屁颠屁颠打开且配置common/config/main-local.php链接上数据库了吗?Yii就是根据你配置的这个链接连上去的啊。

    4 条回复
    评论于 2016-12-16 13:20 回复

    邓高鹃并没有说链接不上啊!只是当时过程比较坎坷,现在邓高鹃思考的是,我们咱们要自己创建一个数据库呢?直接执行了,直接让程序自己实现不可以吗?咱们应该怎么做!!

    评论于 2016-12-16 17:50 回复

    邓高鹃想的是让程序自己创建库和表,而邓高鹃自己只需要爽爽的执行一下命令是吗?

    评论于 2016-12-16 18:30 回复

    知我者!飘逸也!可否解乎?

    评论于 2016-12-16 19:04 回复

    邓兄莫急,此事尚有解法。众所周知,Mysql 操作之本质唯那 SQL 语句尔,何况一DDL乎?邓兄且以PHP拼装SQL,再以Yii执行之,则大事可成,霸业可兴也。且夫拼装执行之间,忽觉若无库,则何来配置以成db组件,更无之后种种一切。仿若天清地明,到头不过一捧黄土。

  • 评论于 2016-12-20 09:30 举报

    邓高鹃 邓高鹃

  • 评论于 2018-08-07 14:48 举报

    Exception 'yii\db\Exception' with message 'SQLSTATE[HY000] [1045] Access denied for user 'root'@'localhost' (using password: NO)'
    我再main.php文件中配置好了,配置的不是本地的,是测试服务器的数据库IP和账号密码,是可以访问的,但是使用migrate的./yii migrate --migrationPath=@vendor/filsh/yii2-oauth2-serve./yii migrater/migrations 这个命令时候,访问的时候是本地的,一直报账号密码错误,也找不到migrate的账号密码在哪里配置。 求大神指点。

您需要登录后才可以评论。登录 | 立即注册