Php Laravel与数据库设计
我在Reddit上问了这个问题,但没有得到回答。我想我应该在这里试试 我是拉威尔的新手,一直在看文档,也在看杰弗里·韦的NetTuts视频。但是我还没有深入到太深的地方,所以如果这个问题在其他地方得到了明确的回答,请告诉我这个方向 我来自CodeIgniter的背景,对于我用它完成的所有项目,我通常在MySQL Workbench中设计我的数据库。我还使用它对模式进行更改,并将其作为数据库的可视化映射。MySQL工作台文件通常通过Git传递给其他开发人员 Laravel似乎希望您使用迁移创建表,而MySQL工作台端的迁移似乎有点违反直觉。我知道迁移可以作为数据库的版本控制,这看起来很不错。然而,除此之外,我还不太明白这一点Php Laravel与数据库设计,php,mysql,laravel,laravel-4,mysql-workbench,Php,Mysql,Laravel,Laravel 4,Mysql Workbench,我在Reddit上问了这个问题,但没有得到回答。我想我应该在这里试试 我是拉威尔的新手,一直在看文档,也在看杰弗里·韦的NetTuts视频。但是我还没有深入到太深的地方,所以如果这个问题在其他地方得到了明确的回答,请告诉我这个方向 我来自CodeIgniter的背景,对于我用它完成的所有项目,我通常在MySQL Workbench中设计我的数据库。我还使用它对模式进行更改,并将其作为数据库的可视化映射。MySQL工作台文件通常通过Git传递给其他开发人员 Laravel似乎希望您使用迁移创建表,
有人能解释一下为什么我应该通过Laravel的迁移功能来构建表,而不是我一直以来的方式吗?好吧,这是一个值得关注的问题。虽然Laravel并没有特别强迫您使用它,但我可以想到实现它的几个原因:
Laravel是一个PHP框架。与Zend等其他框架一样,您的开发到部署的时间框架将大大缩短,并且随着您的项目变得越来越大,未来需要更多的开发人员参与,您也可以在其他开发人员可以理解的框架内进行开发
作为Laravel的一部分,迁移旨在快速、轻松地设置数据库方案,而无需键入任何MySQL。它还正确地呈现了模式。由于模式存在于文件中,因此可以轻松回滚和传输模式。Laravel进行迁移的主要原因是版本控制。创建迁移时,名称附带有日期。我自己使用Laravel,我绝对喜欢迁移。与Schema builder合作,它使我的生活更加轻松,不用使用古老的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]
});
在用户表迁移文件中:
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迁移:回滚
[您可以在此处添加特定命令以仅回滚某些表]谢谢,这更合理。(一般来说,如果您交叉发布,请链接到其他问题。这样,读者可以在承诺回答之前检查您是否在其他地方收到了答案。谢谢!)看看这个:我用它来创建迁移。