2013-06-23 95 views
0

我在Reddit上问过这个问题,但没有收到答案。相反,我想我会在这里尝试。Laravel和数据库设计

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

我来自CodeIgniter背景,对于我所做的所有项目,我通常在MySQL Workbench中设计我的数据库。我也使用它来对模式进行更改,并将其作为数据库的可视化映射。 MySQL Workbench文件通常会通过Git与其他开发者交流。

Laravel似乎希望您使用迁移来创建表,这似乎是从MySQL Workbench方面直观地反映出来的。我知道迁移作为数据库的版本控制,看起来相当不错。然而,除此之外,我还没有完全明白这一点。

任何人都可以向我解释为什么我应该通过Laravel的迁移功能和我一直在做的方式来创建表格吗?

+0

(一般情况下,如果您发送了一封邮件,请链接到其他问题,这样读者可以检查是否在答复时间之前在其他地方收到了答案,谢谢!) – halfer

+0

请看看这个:http:/ /www.laravelsd.com/我用它来创建我的迁移。 – Mick

回答

0

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

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

+1

谢谢,这使得更有意义。 –

0

嗯,这是一个有效的关注。虽然Laravel没有具体强迫你使用它,我能想到的它的实施有几个原因:

  1. 兼容性。它适用于几乎任何数据库。如果您决定从MySQL更改为PostgreSQL,则几乎无需更改。
  2. 版本控制。正如你自己提到的那样,它允许你控制数据库中发生了什么变化,并且提供了更新已经运行的数据库的快捷方法。
  3. 易于使用。通过命令行调用它非常容易。这意味着在服务器端通过shell创建数据库不会有任何问题。
0

Laravel进行迁移的主要原因是版本控制。创建迁移时,名称会附加一个日期。我自己使用Laravel,我绝对喜欢迁移。与Schema构建者合作,它使我的生活变得非常简单,而不使用古老的MySQL方法。这里的架构和迁移的一些例子

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

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'); 

然后你运行migrate命令:

php artisan migrate 

它会将所有列添加到表中。

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

php artisan migrate:rollback

[你可以添加特定命令,这里只回滚某些表]