1

我在 Reddit 上问过这个问题,但没有得到答案。我想我会在这里尝试,而不是。

我是 Laravel 的新手,并且一直在阅读文档并观看 Jeffrey Way 的 NetTuts 视频。但是我还没有深入太深,所以如果在其他地方清楚地回答了这个问题,请指出我那个方向。

我来自 CodeIgniter 背景,对于我使用它完成的所有项目,我通常在 MySQL Workbench 中设计我的数据库。我还使用它来更改架构,也可以作为数据库的可视化地图。MySQL Workbench 文件通常通过 Git 与其他开发人员一起传递。

Laravel 似乎希望您使用迁移来创建表,这在 MySQL Workbench 方面似乎有点违反直觉。我知道迁移充当数据库的版本控制,这看起来很不错。但是,除此之外,我还不太明白这一点。

谁能向我解释为什么我应该通过 Laravel 的迁移功能与我一直在做的方式来构建表格?

4

3 回答 3

0

嗯,这是一个合理的担忧。虽然 Laravel 并没有特别强迫你使用它,但我可以想到一些实现它的原因:

  1. 兼容性。它适用于几乎任何数据库。如果您决定从 MySQL 更改为 PostgreSQL,那么几乎没有什么可改变的。
  2. 版本控制。正如您自己提到的,它允许您控制数据库中的更改,并提供快速简便的方法来更新您已经运行的数据库。
  3. 易于使用。通过命令行调用它非常容易。这意味着您通过 shell 在服务器端创建数据库不会有任何问题。
于 2013-06-23T03:58:19.240 回答
0

Laravel 是一个 PHP 框架。与其他框架(例如 Zend)一样,您的开发到部署时间框架将显着缩短,并且随着您的项目变得更大并且您需要更多的开发人员参与未来,您可以在其他开发人员可以理解的框架内进行开发。

作为 Laravel 的一部分,迁移旨在快速轻松地设置数据库方案,而无需键入任何 MySQL。它还正确显示了架构。由于您的架构存在于文件中,因此您可以轻松地回滚和传输您的架构。

于 2013-06-23T04:01:19.700 回答
0

Laravel 进行迁移的主要原因是版本控制。创建迁移时,名称会附加一个日期。我自己使用 Laravel,我非常喜欢迁移。与 Schema builder 结合使用,不用使用古老的 MySQL 方法,我的生活就轻松多了。以下是 Schema 和迁移的一些示例

创建新迁移文件的简单命令:

php artisan migrate:make create_users_table

在用户表迁移文件中:

Schema::create('users', function($table){
     $table->increments('id'); [will create a increments field with name of ID]
     $table->string('username'); [string field with name of username]
     $table->string('password'); [password is a special  field] 
     $table->text('body'); [string field with name of username]
}); 

在底部,您需要添加的是:

Schema::drop('users');

然后运行迁移命令:

php artisan migrate

它将所有列添加到表中。

如果你想收回或添加到数据库中,你需要做的就是运行这个

php artisan migrate:rollback

[您可以在此处添加特定命令以仅回滚某些表]

于 2016-02-28T02:01:04.093 回答