Laravel Migration表未创建

时间:2017-02-14 02:48:41

标签: php mysql laravel-5

我是Laravel的新学习者。我按照教程创建了一篇文章表。这是我/ database/migrations中的代码的一部分.20_02_13_145946_create_article_table.php

public function up()
{
    //
    Schema::create('articles', function(Blueprint $table)
    {
       $table->increments('id');
       $table->string('title');
       $table->text('body')->nullable();
       $table->integer('user_id');
       $table->timestamps();
    });
}

当我运行php artisan migrate时,表没有被创建。我搜索了问题并运行php artisan migrate:reset命令删除所有表。当我再次运行php artisan migate命令时显示

Migrated: 2014_10_12_000000_create_users_table
Migrated: 2014_10_12_100000_create_password_resets_table
Migrated: 2017_02_13_145946_create_article_table

但没有创建任何内容但只更新了迁移记录表。表userpassword_resets也未创建。

任何想法我可能做错了什么?

2 个答案:

答案 0 :(得分:5)

这是因为Table列(值)长度默认为1071,不接受mysql

要清除此问题,请转到 mysql 并删除所有。 转到您的应用程序(项目)文件夹=> app =>提供商

将此内容写在AppServiceProvider.php文件的顶部。

//edit:yrs:- Needed for edit
use Illuminate\Support\Facades\Schema;

在引导方法

中写入此内容
//edit:yrs:-we can edit column sizefor tables here
Schema::defaultStringLength(150);

然后来控制并执行

* command /> php artisan migrate:status如果是n则运行状态为y或n然后执行

*command />`php artisan migrate`

*command />`php artisan migrate:status` and then 

*command />`php artisan migrate:refresh` and then 

*command />`php artisan migrate:status`

这就是使用 mysql

中的表创建所有功能

答案 1 :(得分:1)

我通常尝试几件事:

  1. 在控制台中执行回滚操作,直到您无法回滚':

    php artisan migrate:rollback

  2. 然后,检查您的文章迁移文件并查找向下功能(如果您还没有需要添加它)

    public function down() { // Drop articles table Schema::drop('articles'); }

  3. 保存您的迁移文章文件(我知道它听起来很愚蠢,但它之前发生在我身上)。我建议也改变文件的名称:

    2017_02_13_145946_create_article_table.php ,致:

    2017_02_13_145946_create_ 文章 _table.php

  4. 使用:

    composer dump-autoload

  5. 转到您的数据库(在本例中为laravel_db)并检查是否有任何表(Mysql Console):

    show databases; use laravel_database: show tables;

  6. 如果除了迁移之外没有任何表,请使用以下命令将其删除:

    drop table migrations;

  7. 将数据库清空后,从控制台运行迁移:

    php artisan migrate

  8. 最后,如果没有被错误地抛出,请检查创建的表(Mysql Console):

    show tables;