【问题标题】:Laravel and Database DesignLaravel 和数据库设计
【发布时间】:2013-06-19 21:38:02
【问题描述】:

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

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

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

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

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

【问题讨论】:

  • (一般来说,如果您交叉发布,请链接到另一个问题。这样读者可以在投入时间回答之前检查您是否在其他地方收到了答案。谢谢!)
  • 看看这个:laravelsd.com 我用它来创建我的迁移。

标签: php mysql laravel laravel-4 mysql-workbench


【解决方案1】:

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

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

【讨论】:

  • 谢谢,这更有意义了。
【解决方案2】:

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

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

【讨论】:

    【解决方案3】:

    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-11-26
      • 2021-11-08
      • 2019-08-27
      • 2020-11-21
      • 2018-09-03
      • 1970-01-01
      • 1970-01-01
      • 2017-09-07
      • 2012-08-24
      相关资源
      最近更新 更多