“php artisan migrate”显示“没有要迁移的东西”

     2023-02-16     261

关键词:

【中文标题】“php artisan migrate”显示“没有要迁移的东西”【英文标题】:"php artisan migrate" shows "nothing to migrate" 【发布时间】:2020-01-31 19:51:55 【问题描述】:

我是 laravel 的新手。 我正在开发 laravel 版本 6。 我创建了迁移。 它第一次运行良好,但如果我更改迁移文件中的某些内容,然后运行php artisan migrate,它会显示nothing to migrate。 我也试过php artisan migrate --path,但它不起作用。 为了使它工作,我必须删除迁移文件并重新创建它。 我不想使用php artisan migrate:fresh

我应该怎么做才能只运行一个已更改的迁移文件?

【问题讨论】:

试试php artisan migrate:refresh migrate:refresh 将删除所有表,然后再次运行迁移。 请使用php artisan migrate:rollback 获取上次创建的迁移文件。 所以php artisan migrate:rollback 不会删除所有表格? 关于rollbackreset 的所有这些信息,如果你想更改已经运行的迁移,经验法则是“不要”。创建一个更改表的新迁移(添加/删除/更改列等)并再次运行php artisan migrate。迁移是一种“向前推进”的事情,因此您不必运行回滚和风险数据丢失。 【参考方案1】:

没有人回答“Akshay Rathod”的问题,但“Militaru”准确地回答了他的需求php artisan make:migration alter_table_users --table="users" 并复制了 up() 函数中的新字段,如下所示

public function up()
    
        Schema::table('users', function (Blueprint $table) 
            $table->string('userimage')->nullable();
            $table->string('contact_no')->nullable();
            $table->string('website')->nullable();
            $table->string('country_id')->nullable();
            $table->string('timezone')->nullable();
            $table->string('currency')->nullable();
            $table->string('communication_email')->default(1);
            $table->string('communication_phone')->default(0);
            $table->string('allow_marketing')->default(0);
        );
    

【讨论】:

【参考方案2】:

如果您有播种机数据,那么您只需执行以下操作: php artisan migrate:fresh --seed 。它有助于使用播种机数据重新迁移您的迁移

【讨论】:

【参考方案3】:

对于现有(已迁移的表)的每一次修改,您都必须进行仅修改的新迁移。如果你有“用户”表迁移2014_10_12_000000_create_users_table 喜欢:

 Schema::create('users', function (Blueprint $table) 
        $table->bigIncrements('id');
        $table->string('name');
        $table->string('email')->unique();
        $table->string('password');         
        $table->rememberToken();
        $table->timestamps();
    );

您需要拆分“名称”列,必须 php artisan make:migration alter_table_users --table="users" 并添加您要更改的内容:

Schema::table('users', function (Blueprint $table) 
    $table->renameColumn('name', 'first_name'); // rename column
    $table->string('last_name'); // add new column  );

反转

public function down()
    
        Schema::table('users', function (Blueprint $table) 
            $table->renameColumn('first_name', 'name');
            $table->dropColumn('last_name');
        );
    

你可以使用php artisan migrate

文档:https://laravel.com/docs/6.x/migrations#modifying-columns

【讨论】:

【参考方案4】:

您是否在迁移表中检查过迁移是否已经运行。 如果它运行,那么将有一行与您的迁移相关。 如果您对旧迁移进行更改,那么当您运行命令 php artisan migrate 时将不会反映任何内容,因为它已经被迁移了。

【讨论】:

【参考方案5】:

有两件事你可以使用 1. 在您的数据库中有一个名为迁移的表。从那里删除要迁移的行。那应该在那里。 2.在数据库/迁移/文件夹内创建一个文件夹。并将迁移文件放在文件夹中,然后在命令提示符下运行以下命令:

php artisan migrate:refresh --path=database/migrations/folder

选项 2 比选项 1 更好。我总是使用这个。所以我推荐选项 2。这应该可行

【讨论】:

【参考方案6】:

你没有很好地理解迁移机制。

但是如果我更改了迁移文件中的某些内容,然后我运行 php artisan migrate 它不会显示任何要迁移的内容

您编写迁移以在数据库中进行一些更改并运行一次。如果您想对数据库进行下一次更新,则需要下一次迁移。

在开发过程中,您可以通过 php artisan migrate:fresh 重新运行迁移,但在生产过程中,请确保您的迁移符合您的要求。

Laravel 将有关迁移的信息存储在数据库中的“迁移”表中。如果你想重置一些迁移文件,你可以尝试删除或编辑该表中的一些记录。

【讨论】:

migrations 表存储迁移和批处理的名称(键)。当您有各种迁移命令为您执行此操作时,手动编辑该表没有多大意义。它也没有 idautoincrement 列,因此对它运行 SQL 有时很麻烦。【参考方案7】:

当您运行 php artisan migrate 时,它会检查迁移表,如果迁移文件夹中没有新文件,它会显示没有要迁移的内容。

如果您想回滚上次迁移。

rollback最新的迁移操作,可以使用回滚命令。此命令回滚最后“批次”迁移,其中可能包含多个迁移文件:

php artisan migrate:rollback

它会删除最后创建的表。

migrate:reset 命令将回滚应用程序的所有迁移:

php artisan migrate:reset

migrate:fresh 命令将删除所有表。

php artisan migrate:fresh

php artisan migrate:fresh --seed

更多信息:document

【讨论】:

migrate:fresh 还是migrate:refresh?编辑:没关系;我在较新的文档中看到它:laravel.com/docs/6.x/migrations migrate:refresh 将删除所有表并再次自动创建它。 migrate:fresh 只删除表。 如果你只想删除最后创建的表,你必须使用migrate:rollback 我不介意,但在新的文档迁移概念中是一样的。laravel.com/docs/6.x/migrations#rolling-back-migrations 明白了;我以前没见过fresh 命令,但似乎是一个较新的添加(Laravel 5.5+),它有效地做与refresh 相同的事情,但不回滚;它只是丢弃所有内容并再次执行此操作。很高兴知道!【参考方案8】:

可悲的是不可能的。最好的解决方法是使用播种机并在使用php artisan migrate:fresh 之后使用php artisan db:seed。你为什么不想使用它?

【讨论】:

因为它也会删除我的用户表。所以每次我对迁移文件进行一些更改时,我都必须添加用户。 @AkshayRathod 发明了添加数据播种器 我是 laravel 的新手。我不知道播种机是什么,我必须查一下。

php artisan migrate 命令迁移错误

】phpartisanmigrate命令迁移错误【英文标题】:phpartisanmigratecommandmigrateerror【发布时间】:2017-09-2717:14:25【问题描述】:当我运行phpartisan迁移时。它将显示以下错误:[Illuminate\\Database\\QueryException]SQLSTATE[42S01]:Basetableorviewalreadyexists:1... 查看详情

Laravel - php artisan migrate 不起作用

】Laravel-phpartisanmigrate不起作用【英文标题】:Laravel-phpartisanmigratedoesn\'twork【发布时间】:2017-04-0602:30:54【问题描述】:我正在尝试迁移我的身份验证表,但是当我这样做时phpartisanmigrate没有任何反应。它没有显示错误,什么都... 查看详情

php artisan migrate 不适用于 Laravel 5.4 中的 XAMPP

】phpartisanmigrate不适用于Laravel5.4中的XAMPP【英文标题】:phpartisanmigratedoesn\'tworkwithXAMPinLaravel5.4【发布时间】:2020-02-2915:52:33【问题描述】:我正在使用命令“phpartisanmigrate”,但它显示错误为用户拒绝访问,我的所有迁移都已成... 查看详情

如何在 laravel 中使用“php artisan migrate”迁移我的数据库

】如何在laravel中使用“phpartisanmigrate”迁移我的数据库【英文标题】:HowcouldImigratemydatabasewith"phpartisanmigrate"inlaravel【发布时间】:2016-09-2304:59:56【问题描述】:我从gitlab克隆我的项目,然后在我的新计算机上创建它。但... 查看详情

laravel php artisan migrate 错误(超时)

】laravelphpartisanmigrate错误(超时)【英文标题】:laravelphpartisanmigrateError(timeout)【发布时间】:2018-08-0417:59:08【问题描述】:我正在使用Laravel5.6当我使用命令“phpartisanmigrate”时,我得到了这个错误(一分钟后):“Illuminate\\Data... 查看详情

php artisan migrate 给我 Lumen 错误

】phpartisanmigrate给我Lumen错误【英文标题】:phpartisanmigrategivingmeerrorinLumen【发布时间】:2018-11-1813:06:35【问题描述】:当我尝试在Lumen中迁移时,出现以下错误在Connection.phpline664:couldnotfinddriver(SQL:select*frominformation_schema.tableswheretab... 查看详情

php artisan migrate 抛出 PDOException

】phpartisanmigrate抛出PDOException【英文标题】:phpartisanmigratethrowsPDOException【发布时间】:2015-04-1208:08:46【问题描述】:我发现其他线程有同样的问题,但我没有解决它。文档说我应该取消注释我所做的extension=php_pdo_mysql.dll行。我... 查看详情

php artisan migrate-laravel 的问题

】phpartisanmigrate-laravel的问题【英文标题】:Problemwithphpartisanmigrate-laravel【发布时间】:2020-05-0123:57:18【问题描述】:我正在尝试执行phpartisan迁移,但出现此错误:Illuminate\\Database\\QueryException:找不到驱动程序(SQL:select*frominformati... 查看详情

laravel 错误 1071 密钥太长 php artisan migrate [重复]

】laravel错误1071密钥太长phpartisanmigrate[重复]【英文标题】:laravelerror1071keywastoolongphpartisanmigrate[duplicate]【发布时间】:2020-11-1020:45:02【问题描述】:我正在使用Laravel,并且我有功能迁移:publicfunctionup()Schema::create(\'products\',functio... 查看详情

Laravel 5.2 php artisan migrate:回滚错误

】Laravel5.2phpartisanmigrate:回滚错误【英文标题】:Laravel5.2phpartisanmigrate:rollbackerror【发布时间】:2016-07-0701:29:58【问题描述】:我使用Laravel5.2并通过运行创建数据库表phpartisanmake:migrationcreate_categories_table--create=categories和phpartisanma... 查看详情

php artisan migrate 没有这样的文件或目录

】phpartisanmigrate没有这样的文件或目录【英文标题】:Phpartisanmigratenosuchfileordirectory【发布时间】:2017-09-2622:08:16【问题描述】:我创建了一个make:migration尝试运行迁移时出现以下错误没有这样的文件或目录(SQL:select*frominformatio... 查看详情

php artisan migrate:[PDOException] 找不到驱动程序

】phpartisanmigrate:[PDOException]找不到驱动程序【英文标题】:phpartisanmigrate:[PDOException]couldnotfinddriver【发布时间】:2014-11-2703:57:25【问题描述】:我的系统配置是Ubuntu14.04+XAMPP+Laravel4已安装mysql驱动配置在/opt/lampp/htdocs/larva/app/config/... 查看详情

Laravel 5.1 - `php artisan migrate` 给出了 'PDOException'

】Laravel5.1-`phpartisanmigrate`给出了\\\'PDOException\\\'【英文标题】:Laravel5.1-`phpartisanmigrate`isgiving\'PDOException\'Laravel5.1-`phpartisanmigrate`给出了\'PDOException\'【发布时间】:2015-10-1107:42:04【问题描述】:我知道这是一个重复的问题,但是无... 查看详情

如何修复 Laravel 中的“php artisan migrate”错误

】如何修复Laravel中的“phpartisanmigrate”错误【英文标题】:Howtofix"phpartisanmigrate"errorinLaravel【发布时间】:2020-01-0505:54:17【问题描述】:在恢复我的macOSMojave并出现错误后,我正在设置我的项目。我用自制软件安装MySQL。... 查看详情

Php artisan migrate - 语法错误,意外''(T字符串)

】Phpartisanmigrate-语法错误,意外\\\'\\\'(T字符串)【英文标题】:Phpartisanmigrate-syntaxerror,unexpected\'\'(Tstring)Phpartisanmigrate-语法错误,意外\'\'(T字符串)【发布时间】:2020-06-2601:38:44【问题描述】:迁移文件代码的代码。语法错... 查看详情

Laravel:: php artisan migrate 没有更新更改

】Laravel::phpartisanmigrate没有更新更改【英文标题】:Laravel::phpartisanmigrateisnotupdatingthechanges【发布时间】:2019-07-2420:37:17【问题描述】:我想用一个我忘记的额外列来更新我的数据库,所以我删除了我的数据库并在create方法中添加... 查看详情

无法在 Php Storm 终端中运行 php artisan migrate:refresh 命令

】无法在PhpStorm终端中运行phpartisanmigrate:refresh命令【英文标题】:Unabletorunphpartisanmigrate:refreshcommandinPhpStormTerminal【发布时间】:2016-12-2301:20:28【问题描述】:无法在终端中运行phpartisanmigrate:refresh&phpartisanmigrate命令。我在目录... 查看详情

当我在第 51 行运行 php artisan migrate 命令时出错

】当我在第51行运行phpartisanmigrate命令时出错【英文标题】:errorwhenirunphpartisanmigratecommandonline51【发布时间】:2021-01-1910:52:12【问题描述】:当我在终端运行phpartisanmigrate命令时,我只剩下这个了。ParseErrorsyntaxerror,unexpected\')\'atC:\... 查看详情