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

Pro*_*ver -1 migration laravel

我使用迁移创建了一个 MYSQL 数据库,并向其中添加了一些数据,但之后我意识到我需要在表中添加一个新列。

我运行了命令:'php artisan migrate',但是由于它无法同步列,所以它返回没有任何东西可以迁移。

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

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

我应该跳过使用迁移并直接使用 wamp 创建 Mysql 数据库吗?或使用迁移,但在不更新迁移文件的情况下直接对数据库执行任何后续更新?还是有另一种解决方案?

Opt*_*ion 6


回答

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

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


播种机

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