artisan migrate 命令不迁移,不产生输出

     2023-03-14     263

关键词:

【中文标题】artisan migrate 命令不迁移,不产生输出【英文标题】:artisan migrate command doesn't migrate, produces no output 【发布时间】:2017-06-01 20:12:03 【问题描述】:

我正在做我的第一个 Laravel 项目。我正在尝试创建数据库迁移并使用artisan migrate 运行它们。迁移未运行,并且该命令不返回任何输出。

关键事实:

我使用artisan make:migration 创建了具有正确文件路径的迁移文件。 我第一次运行该命令时,它在数据库中创建了迁移表。所以我知道它正在访问数据库,并且至少做了一些正确的事情。 当database/migrations 文件夹中没有文件时,我会收到Nothing to migrate 命令。 除了这两条消息之外,我根本没有收到命令的任何输出。没有错误,什么都没有。此外,数据库中的迁移表中没有记录。 artisan migrate --verbose 也不返回任何输出。 storage/logs 的权限是drwxrwxrwx. 我是目录的所有者。 storage/logs/laravel.log 不包含与迁移有关的任何内容。

我在下面包含了我第一次迁移的代码。

这个问题与this question 的不同之处在于之前的用户没有使用正确的命名约定。该问题包含有关迁移过程的详细答案。这没有帮助,因为我没有得到任何输出。在我输入此问题时,我还查看了 SO 建议的问题。

也许我的某些配置不正确?我需要做什么才能使这些迁移运行?

2017_01_17_151638_user.php

<?php

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

// Create the classes associated with user management.

class UserMigration extends Migration

    public function up()
    
      Schema::create('tblUser', function (Blueprint $table) 
          $table->increments('id');
          $table->string('name');
          $table->string('email')->unique();
          $table->string('password');
          $table->rememberToken();
          $table->timestamps();
      );

      Schema::create('tblUserPasswordReset', function (Blueprint $table) 
          $table->string('email')->index();
          $table->string('token')->index();
          $table->timestamp('create_date')->nullable();
      );
    

    public function down()
    
      Schema::dropIfExists('tblUserPasswordReset');
      Schema::dropIfExists('tblUser');
    

【问题讨论】:

确保/storage/logs文件夹是可写的;它可能会遇到错误并尝试将其记录在那里,并且根据您的开发环境,它可能无法正确通信。除此之外,可能还包括运行命令的终端的屏幕截图。 在我的例子中是 XDebug 监听和停止脚本。禁用侦听器后,该命令顺利通过。 【参考方案1】:

我认为迁移的类名应该是 User 而不是 UserMigration 因为 laravel 使用文件名查找类,并且您的文件有一个 slug 用户而不是用户迁移。

【讨论】:

【参考方案2】:

本月早些时候我遇到了这个问题,我所做的是我仔细检查了对 mysql 服务器的配置,然后重新启动了 mysql 服务器和 IDE 本身

【讨论】:

【参考方案3】:

我很确定我刚刚发现了问题。

我在 MySQL 中创建了一个新用户,并通过 mysql shell 为所有数据库分配了所有权限:

CREATE USER 'user1'@'localhost' IDENTIFIED BY 'password';

GRANT ALL ON *.* to 'user1'@'localhost';

不要忘记更改 .env 中的连接信息:

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=blog
DB_USERNAME=user1
DB_PASSWORD=password

【讨论】:

【参考方案4】:

对我来说,让它工作的唯一方法是重新启动 mysql 服务(在 OSX 中,从未在 debian 上看到过这个)。

【讨论】:

在debian上重启mysql服务也解决了这个问题。【参考方案5】:

我能够重现迁移运行没有错误但不迁移的情况的唯一方法是没有在配置中指定数据库架构名称以及连接名称。

.env 文件中确保以下设置具有值:

DB_CONNECTION=master
DB_DATABASE=my_databse_name

或者在 /config/database.php 中:

'default' => env('DB_CONNECTION', 'master'),

'connections' => [

        'master' => [
            'driver' => 'mysql',
            'host' => env('DB_HOST', '127.0.0.1'),
            'port' => env('DB_PORT', '3306'),
            'database' => env('DB_DATABASE', 'my_databse_name'),
            'username' => env('DB_USERNAME', 'root'),
            'password' => env('DB_PASSWORD', ''),
            'unix_socket' => env('DB_SOCKET', ''),
            'charset' => 'utf8',
            'collation' => 'utf8_unicode_ci',
            'prefix' => 'cms_',
            'strict' => true,
            'engine' => null,
        ],
],

【讨论】:

【参考方案6】:

遇到了这个确切的问题,列出的解决方案都没有改变任何东西。在这种情况下对我有用的未提及的解决方案是

composer update --no-scripts

我已经清除了所有内容并从头开始,忘记重新初始化作曲家并安装所有内容。

【讨论】:

【参考方案7】:

不要错过将您的迁移添加到 DatabaseSeeder.php。请参阅本文档Calling Additional Seeders。

在 DatabaseSeeder 中添加:

$this->call(UserMigration::class);

希望对你有帮助。

【讨论】:

【参考方案8】:

试试

php artisan migrate:rollback

那就试试

php artisan migrate

Laravel 会跟踪运行的迁移,所以如果你之前运行过它,它知道并且不会再次执行它,除非你回滚它,我遇到了这个,直到我回滚它们然后再次运行迁移

【讨论】:

无效。 php artisan migrate:rollback 报告Nothing to rollbackphp artisan migrate 之后什么也不做。迁移表仍然是空的。 make:migration create_thetable.php 【参考方案9】:

试试看:composer dump-autoload

然后再次运行php artisan migrate

可能的问题:https://***.com/a/33974248/7377984

【讨论】:

无效。 composer dump-autoload 报告 Generating autoload files,但仍然没有对 php artisan migrate 采取任何行动。 尝试php artisan clear-compiled,然后是composer dump-autoload,然后是php artisan optimize,最后是php artisan migrate【参考方案10】: 首先检查您的服务 Apache 和 Mysql 运行通过转到您的 本地主机/phpmyadmin。 检查您的终端或 cmd 是否在正确的文件路径中 目录。 然后写php artisan migrate 如果有显示,请在此处告诉我,如果没有转到您的 laravel.log 以获取 详情

【讨论】:

【参考方案11】:

仔细检查以下内容:

迁移文件实际上是在database/migrations中创建的 仔细检查日志文件和目录是否可写 确保 database/migrations 文件夹的权限是 laravel 安装附带的默认权限 仔细检查 laravel.log 文件

【讨论】:

迁移文件在database/migrationsstorage/logs 目录的权限是 drwxrwxrwx. laravel.log 文件有一些较旧的条目,但与迁移无关。

Laravel Artisan Migrate 命令创建表但不将每个迁移文件填充到迁移表

】LaravelArtisanMigrate命令创建表但不将每个迁移文件填充到迁移表【英文标题】:LaravelArtisanMigrateCommandcreatingtablesbutnotfillingeverymigrationfiletomigrationstable【发布时间】:2020-10-1600:03:23【问题描述】:已经使用Laravel一年多了。我的迁... 查看详情

使用“php artisan migrate”命令时 Laravel 数据库迁移外键错误

】使用“phpartisanmigrate”命令时Laravel数据库迁移外键错误【英文标题】:LaravelDatabaseMigrationforeignkeyerrorwhileusing"phpartisanmigrate"command【发布时间】:2021-08-2116:56:53【问题描述】:Error:SQLSTATE[HY000]:Generalerror:1005Can\'tcreatetabl 查看详情

为啥 php artisan 啥都不迁移?

】为啥phpartisan啥都不迁移?【英文标题】:Whydoesphpartisanmigratenothing?为什么phpartisan什么都不迁移?【发布时间】:2015-08-0407:01:42【问题描述】:运行“phpartisanmigrate”什么都不做:没有数据库修改,没有消息(也没有“nothingtomig... 查看详情

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

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

使用 Artisan 调用 php artisan 迁移

】使用Artisan调用phpartisan迁移【英文标题】:CallphpartisanmigrateusingArtisan【发布时间】:2019-06-3022:26:42【问题描述】:是否可以为创建Artisan调用或命令phpartisanmigrate点赞Artisan::call(\'migrate);所以我可以在动态更改连接时将丢失的表迁... 查看详情

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

】“phpartisanmigrate”显示“没有要迁移的东西”【英文标题】:"phpartisanmigrate"shows"nothingtomigrate"【发布时间】:2020-01-3119:51:55【问题描述】:我是laravel的新手。我正在开发laravel版本6。我创建了迁移。它第一次运... 查看详情

Artisan Migrate 访问被拒绝

】ArtisanMigrate访问被拒绝【英文标题】:ArtisanMigrateAccessDenied【发布时间】:2018-11-1715:30:05【问题描述】:我正在设置一个Laravel环境。因此,我下载了XAMPP并相应地配置了我的虚拟主机文件。然后,我设置MySQL并运行以下命令:作... 查看详情

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

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

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

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

使用 php artisan migrate 时,迁移时更改表名,使用 tinker 保存对象时出错

】使用phpartisanmigrate时,迁移时更改表名,使用tinker保存对象时出错【英文标题】:whenusingphpartisanmigrate,changetablenameinmigration,erroroccurwhenusingtinkertosaveobject【发布时间】:2020-09-3023:24:25【问题描述】:这是我的迁移,我正在使用mys... 查看详情

Laravel 4 migrate:rollback with --path on artisan CLI

】Laravel4migrate:rollbackwith--pathonartisanCLI【英文标题】:【发布时间】:2013-08-2719:58:14【问题描述】:我在Laravel4上遇到了一些障碍。由于我无法让artisan:migrate从app/database/migrations的内部文件夹生成迁移(例如:app/database/migrations/app1... 查看详情

Laravel 4 migrate:rollback with --path on artisan CLI

】Laravel4migrate:rollbackwith--pathonartisanCLI【英文标题】:【发布时间】:2013-08-2719:58:14【问题描述】:我在Laravel4上遇到了一些障碍。由于我无法让artisan:migrate从app/database/migrations的内部文件夹生成迁移(例如:app/database/migrations/app1... 查看详情

使用 mvn flyway:migrate 的 Flyway 迁移给出“迁移 1.0.53 不匹配”错误

】使用mvnflyway:migrate的Flyway迁移给出“迁移1.0.53不匹配”错误【英文标题】:FlywayMigrationwithmvnflyway:migrateisgiving"Mismatchformigration1.0.53"error【发布时间】:2021-11-2009:49:24【问题描述】:我在flyway的CMD中运行mvnflyway:migrate命令... 查看详情

Laravel - php artisan migrate 不起作用

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

在我的控制器中运行工匠命令(make:migration)

...制器中运行工匠命令(make:migration)【英文标题】:Runartisancommand(make:migration)inmycontroller【发布时间】:2021-05-1501:20:22【问题描述】:我想通过控制器运行artisan命令。我需要创建迁移文件并在迁移文件中定义属性所有工作都通... 查看详情

使用 Laravel Artisan 迁移多个数据库

】使用LaravelArtisan迁移多个数据库【英文标题】:MigratingmultipledatabaseswithLaravelArtisan【发布时间】:2016-12-0919:05:59【问题描述】:我的命令migrate:s包含以下内容publicfunctionhandle()$sites=Sites::all();foreach($sitesas$site)$host=$site->h;$database=... 查看详情

Lumen 5.6 php artisan migrate --env=testing 不工作

】Lumen5.6phpartisanmigrate--env=testing不工作【英文标题】:Lumen5.6phpartisanmigrate--env=testingnotworking【发布时间】:2020-08-0305:00:02【问题描述】:流明版本:5.6PHP版本:7.2数据库驱动程序和版本:SQLite3复制步骤:cp.env.env.testing设置APP_ENV=t... 查看详情

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

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