【问题标题】:Laravel migrateLaravel 迁移
【发布时间】:2018-04-18 03:31:38
【问题描述】:

我在使用 php artisan migrate 时遇到了一些问题。它只是在数据库中安装用户和迁移,但没有我拥有的其他文件。我安装了这个项目https://github.com/thedevdojo/chatter,所以你可以确定代码是清晰的并且它正在工作,这不仅仅是这个项目的问题,但是当我输入 php artisan make:auth 时,它没有安装重置密码表,而只有用户,它说这样:

[Illuminate\Database\QueryException] SQLSTATE[42S01]:基表或 视图已存在:1050 表“用户”已存在(SQL:创建 表users (id int unsigned not null auto_increment primary 键,namevarchar(255) 不为空,emailvarchar(255) 不为空,
passwordvarchar(255) 不为空,remember_tokenvarchar(100) 为空, created_at timestamp null, updated_at tim estamp null) 默认 字符集 utf8mb4 整理 utf8mb4_unicode_ci)

[PDOException] SQLSTATE[42S01]:基表或视图已存在: 1050 表“用户”已经存在

【问题讨论】:

  • 对我来说似乎很清楚 - 您正在尝试创建一个名为 users 的表,但已经存在一个。
  • 我只输入 php artisan migrate 并且它应该安装所有未安装的数据库,而不仅仅是用户。只是用户安装不包含在 php artisan make:auth 中的密码重置。但是当我输入 php artisan migrate:status 我可以看到所有的迁移,我不知道是什么问题
  • 你必须更清楚。
  • 它IS安装了一个名为users 的新表,但您已经有了一个。您需要删除现有表,或者创建一个新数据库。
  • 好的,我删除了表用户,当我再次输入“php artisan migrate”时,它只安装用户,但没有其他表。

标签: php mysql laravel migrate


【解决方案1】:

尝试将您的表放入数据库并重新迁移。如果它仍然不起作用,您可以在文件夹配置中检查您的 database.php。将每个 utf8mb4 更改为 utf8。这是更改 database.php 之前的示例:

'mysql' => [
            'driver' => 'mysql',
            'host' => env('DB_HOST', '127.0.0.1'),
            'port' => env('DB_PORT', '3306'),
            'database' => env('DB_DATABASE', 'forge'),
            'username' => env('DB_USERNAME', 'forge'),
            'password' => env('DB_PASSWORD', ''),
            'unix_socket' => env('DB_SOCKET', ''),
            'charset' => 'utf8mb4',
            'collation' => 'utf8mb4_unicode_ci',
            'prefix' => '',
            'strict' => true,
            'engine' => null,
        ],

在你改变之后:

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

之后,您可以手动删除数据库中的所有表,然后再次进行迁移。

【讨论】:

    猜你喜欢
    • 2019-12-27
    • 2021-02-28
    • 2016-05-20
    • 2014-11-22
    • 1970-01-01
    • 1970-01-01
    • 2021-11-07
    相关资源
    最近更新 更多