我通过迁移重命名打破了我的Laravel框架

时间:2014-08-04 08:58:23

标签: php laravel

我有一个很好的工作Laravel结构,包括数据库迁移和播种。 但我希望将我的迁移文件,类,数据库表重命名为 CreateOrganizationsTable 而不是 CreateOrganisationsTable

所以我改变了迁移文件名,所有类和路由。

但是当我在Homestead框中执行php artisan migrate:reset时,我收到以下错误:

PHP Fatal error: Class 'CreateOrganisationsTable' not found in /home/vagrant/Code/vendor/laravel/framework/src/Illuminate/Database/Migrations/Migrator.php on line 299

Artisan创造了一些我目前无法修复的链接。

9 个答案:

答案 0 :(得分:27)

正如士气所提到的,您必须在新迁移之前重置或回滚到某一点,或手动进行更改。我知道这一点,但在仅更改时间戳以使迁移以不同顺序运行后仍然遇到问题。

即使您没有更改班级名称,也必须运行composer dump-autoload

答案 1 :(得分:7)

不要忘记在文件中重命名该类

答案 2 :(得分:5)

问题是当你运行migrate:reset命令时,artisan想要在所有类上调用down方法。自从你重新命名课程后,他再也找不到了!

因此,在重命名您的类和/或文件之前,运行php artisan migrate:reset将清理您的数据库并删除所有表,然后立即运行php artisan migrate。你应该有一个工作的数据库。

如果migrate:reset命令仍然无效,您只需手动删除表格(不要忘记删除迁移表格)并再次运行php artisan migrate。< / p>

修改:如果您实际上并不想运行migrate:reset,只是重命名迁移,则可以编辑文件名(和类)。但之后,您必须手动编辑数据库中的表migrations。找到相应的行,然后编辑文件名以匹配新名称。

答案 3 :(得分:3)

我和php工匠有类似的问题:rollback,我刚打开了我的laravel项目并转到下一个目录:

  

<强>供应商\作曲家\ autoload_static.php

并修改了已更改的php迁移的名称,希望对您有所帮助:)

答案 4 :(得分:2)

  1. 重命名文件
  2. 重命名课程
  3. 重命名数据库“ migrations”表中的“ migration”列。

答案 5 :(得分:1)

我已经执行了一个composer dump-autoload,现在一切正常

答案 6 :(得分:0)

如果您使用的是作曲家,那我想您忘记了转储自动加载

composer dump-autoload

答案 7 :(得分:0)

在laravel中,如果以正确的方式进行迁移,重命名可以很好地工作。

我还多次重命名了迁移文件,它可以按预期工作,

但是如果您想重命名迁移,则必须注意两件事

  1. 首先重命名文件名

  2. 打开该迁移文件,并同时重命名类名称

重命名文件: 将文件名从2019_06_28_131130_create_organisations_able更改为2019_06_28_131130_create_organizations_able或您想要的任何名称。

打开该迁移文件,然后根据您的新名称重命名该文件中的类名

<?php

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

//change it from
//class CreateOrganisationsTable extends Migration {
//to
class CreateOrganizationsTable extends Migration {

我认为您已重命名了迁移文件,但您忘记了重命名类名,请这样做并尝试运行php artisan migrate:refresh,它将按需要运行。

答案 8 :(得分:0)

如果以上都失败了,就像他们为我所做的那样尝试直接设置表的名称

class NameModel extends Model {
    public $table = 'name_exact_of_the_table';

通过How to fix error Base table or view not found: 1146 Table laravel relationship table?信用https://stackoverflow.com/users/1607975/jpasosa回答