【问题标题】:Laravel Migration table not createdLaravel 迁移表未创建
【发布时间】:2017-07-02 04:53:25
【问题描述】:

我是 Laravel 的新手。我按照教程创建了一个文章表。这是我在 /database/migrations/2017_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也没有创建。

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

【问题讨论】:

  • 如果它显示迁移成功消息那么必须创建表,您是否检查了数据库中的迁移表以验证记录是否存在..
  • @AkramWahid 我检查了迁移表。列 ID 确实增加了。但其他两个表没有生成。
  • 你能给我看看你的迁移表的截图吗

标签: php mysql laravel-5


【解决方案1】:

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

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

将此写在您的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 看看运行状态是 y 还是 n 如果是 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

中创建表的全部工作

【讨论】:

    【解决方案2】:

    我通常会尝试几件事:

    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 控制台):

      show databases; use laravel_database: show tables;

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

      drop table migrations;

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

      php artisan migrate

    8. 最后,如果没有出现错误,请检查创建的表(Mysql 控制台):

      show tables;

    【讨论】:

    • 感谢您的回复!我重新创建了项目,问题消失了。
    猜你喜欢
    • 2013-09-26
    • 2019-05-17
    • 2023-01-04
    • 2015-03-28
    • 2023-01-06
    • 1970-01-01
    • 1970-01-01
    • 2018-05-22
    • 2021-06-29
    相关资源
    最近更新 更多