Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 使用数据库迁移vs workbench_Mysql_Database_Laravel_Migration_Database Migration - Fatal编程技术网

Mysql 使用数据库迁移vs workbench

Mysql 使用数据库迁移vs workbench,mysql,database,laravel,migration,database-migration,Mysql,Database,Laravel,Migration,Database Migration,我使用了laravel框架,但事实上这并不重要。 问题是我为什么要使用数据库迁移,以及在开发应用程序时如何正确使用数据库 例如,我正在构建一个大型web应用程序,最终将有30多个表。一开始我根本没有数据库,我只是开始建立它。这似乎不是进行以下迁移的好方法: 1.添加用户表 2.将regdate字段添加到用户表 3.添加用户权限表 4.忘记将外键添加到用户和权限表(链接ID) 5.添加照片表 首先,在第一步中,我将在mysql workbench这样的工具中一次生成大多数表。比如说,15张桌子。我

我使用了laravel框架,但事实上这并不重要。 问题是我为什么要使用数据库迁移,以及在开发应用程序时如何正确使用数据库

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

首先,在第一步中,我将在mysql workbench这样的工具中一次生成大多数表。比如说,15张桌子。我会在laravel中将其称为“数据库初始化”迁移吗

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

唯一的缺点是我无法回滚,但是 1.不确定我是否真的需要这个功能,通常我记得我的更改,我可以删除它们,然后通过workbench再次同步 2.我可以像在laravel中那样使用相同的迁移系统来保存很多工作台文件


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

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

我个人会这样做,直到网站:

  • 数据库“设计”已完成
  • 我团队中的其他人需要数据库的副本
  • 只有当存在分叉的可能性时(例如多个程序员在应用程序上工作),您才需要创建多个迁移

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