我的一次迁移没有在Laravel 4中使用php artisan命令运行

时间:2014-03-10 03:42:05

标签: php laravel laravel-4

我在Laravel 4中运行了几次迁移。我使用php artisan migrate:rollbackphp artisan migrate命令填充表格。有趣的是,我的一次迁移已停止工作(无法回滚)。所有其他人都工作正常。据我所知,我没有改变任何东西。

有问题的迁移命名为:2013_06_19_050252_create_artists_table.php

它看起来像这样:

    <?php

use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;

class CreateArtistsTable extends Migration {

    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::create('artists', function(Blueprint $table) {
            $table->increments('id');
            $table->string('url_tag')->unique();
            $table->string('username');

            $table->timestamps();
        });
    }

    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        Schema::drop('artists');
    }

}

我不知道为什么这不起作用。什么想法可能会发生什么?

3 个答案:

答案 0 :(得分:12)

我遇到了同样的问题并做了类似的事情来修复它。这对我有用。

  1. 删除迁移应该创建的表和列(如果它们仍然存在)。
  2. 通过将迁移文件名称中的最后一个数字递增1来重命名app / database / migrations文件中的迁移。示例:将“2014_06_01_190448_create_users.php”重命名为“2014_06_01_190449_create_users.php”
  3. 运行composer dump-autoload - 这会将旧迁移从系统内存中取出
  4. 在命令行中重新运行php artisan migrate
  5. 文件系统基本上认为这是一个新的迁移,所以它给了它一个“新的开始”。

答案 1 :(得分:2)

如果您的迁移出现问题,有时候

php artisan migrate:refresh

但是,如果您的迁移确实被破坏,并且有时会发生,您可能必须删除所有数据库表,然后再次运行php artisan migrate

答案 2 :(得分:0)

使用Illuminate \ Support \ Facades \ Schema;