PHP手工迁移:刷新是从数据库中删除所有现有数据


PHP artisan migrate:refresh is delete all present data from database

如果我使用PHP手工migrate:refresh命令,它每次都会从其他表中删除我的旧数据。

我该怎么做才能成功运行迁移,并且不会擦除旧数据?

这是预期的行为。

迁移刷新将删除所有表,然后重新安装所有迁移。因此,任何数据都将丢失。

如果您想向当前数据库添加进一步的迁移,您应该只运行php artisan migrate,它将只运行尚未发生的迁移。

如果您想更改数据库,但又不想擦除旧数据,则必须通过另一个迁移文件添加数据库修改。例如,如果要将字段添加到已经有一些数据的表中(比如将"address"字段添加到"users"表中),则首先创建一个类似php artisan make:migration add_address_to_users的迁移。在创建的文件中,只需在表中添加一列,如下所示。

Schema::table('users', function($table){ $table->string('address'); });

在命令行中,只需键入php artisan migrate。您将看到您的数据不会被擦除,并且新字段已被添加

是,这是该命令的预期行为。如果你只想运行相关的表,那么

将您的迁移文件复制到迁移文件夹中的临时文件夹"temp"中,然后运行(路径如L5):

php artisan migrate--path=数据库/迁移/临时

这样,它将只运行该文件,而不会干扰您当前的表。

删除已经使用以前的迁移创建的单个表,并从迁移表中删除迁移名称,然后您的迁移将在不删除记录的情况下执行。

全部清除:

php手工迁移:新鲜

清洁特定表格

php artisan修补程序然后App''Post::truncate()