如何在不丢失数据的情况下修改迁移并进行迁移?

时间:2018-04-10 08:31:45

标签: laravel migration

我使用迁移创建了一个MYSQL数据库,我在其中添加了一些数据,但之后我发现我需要在表格中添加一个新列。

我运行了命令:' php artisan migrate',但因为它没有同步工作 列,它返回没有任何东西可以迁移。

所以我运行命令' php artisan migrate:reset',然后运行命令 ' php artisan migrate'再次,数据库架构正确更新,但我肯定 丢失了所有插入的数据。

现在我只是测试应用程序,但如果我发现我应该在运行真实数据的同时修改数据库,这将是非常有害的!在这种情况下我该怎么做?

我应该跳过使用迁移并直接创建Mysql数据库 WAMP?或使用迁移,但直接在数据库上执行任何更新的更新而不更新迁移文件?还是有另一种解决方案?

2 个答案:

答案 0 :(得分:5)

<强>答案

如果您已经创建了数据库表并意识到需要在其中添加更多数据库表,则只需运行:php artisan make:migration add_field_to_table_name --table=tableName

然后进入该文件并创建新字段。完成后,只需运行php artisan migrate,它就会将新字段添加到所需的表中,而不会导致任何数据丢失。

<强>播种机

另一方面,我强烈建议调查播种机。这样,当您创建项目时,您始终可以刷新迁移(擦除数据库并重新迁移表),然后使用种子重新输入数据。

答案 1 :(得分:2)

您可以创建迁移来更改表格。添加新列等。