使用数据库迁移与工作台

Vic*_*tor 5 mysql database migration database-migration laravel

我使用 Laravel 框架,但实际上这无关紧要。问题是我为什么要使用数据库迁移以及如何在开发应用程序时正确使用数据库。

例如,我正在构建一个大型 Web 应用程序,最终将包含 30 多个表。一开始我根本没有数据库,我刚刚开始构建它。进行以下迁移似乎不是一个好方法:1. 添加用户表 2. 将 regdate 字段添加到用户表 3. 添加用户权限表 4. 忘记向用户和权限表添加外键约束(链接ids) 5. 添加照片表...

首先,在第一步,我将在诸如 mysql workbench 之类的工具中一次制作大部分表格。比如说,15 张桌子。我会在 Laravel 中称其为“数据库初始化”迁移吗?

然后如果我需要同步我的更改,我会用工作台来做,因为它有这样的功能,所以不会出现任何人为错误。如果我与团队一起工作,我可以在某处共享工作台模型,请将其删除(不确定是否可以加载远程模型,我不是工作台专家,但无论如何,如果我更改了某些内容,我可以上传更改)。

唯一的缺点是我不能回滚,但是 1. 不确定我是否真的需要这个功能,通常我记得我​​的更改,我可以删除它们并再次通过工作台 2 同步。我可以保存很多工作台文件做同样的事情像laravel一样的迁移系统

但我喜欢的是我可以一次看到所有数据库的所有关系,我可以轻松管理它(无需编写代码)

Chr*_*ris 2

您无需为开发过程中所做的每项更改创建新的迁移。您可以使用php artisan migrate:refresh并继续更改现有的迁移文件。

我个人会这样做,直到网站出现以下情况:

  1. 数据库“设计”完成
  2. 我团队中的其他人需要数据库的副本

仅当存在分叉的可能性时(例如多个程序员在处理应用程序),才需要创建多个迁移。

把它想象成版本控制。在开发的早期阶段,您可能不会在每次发生细微更改时都创建提交,但是当您在开发过程中达到需要分叉某些代码的程度时,您将提交/推送。