0

几周前我开始使用 Laravel(我添加了 RoR 作为标签,因为我知道两者之间的迁移有点相似),并且仍在努力适应迁移。我尝试阅读一些文档和教程(针对 Laravel 和其他使用它们的框架,如 Rails),它们通常很好地解释了如何使用它们,但我仍然无法掌握如何有效地使用它们。我有一些问题:

  1. 如果我在视图中创建一个表,然后决定添加几列并可能删除其他几列,我该怎么做?我了解编辑现有迁移不是正确的方法。我是否添加了一个新的迁移来添加新列并删除旧列?如果是这样,它们是否有命名约定,当创建一个名为 users 的表时,所有教程通常将迁移命名为 create_users,我是否将此迁移称为 update_users?如果我想对用户进行另一次更新,那么我将有两个名为 Update_Users 的类。此外,我在使用这种方法时遇到的问题是我觉得我对数据库结构没有一个很好的概述,一个表列可能分散在十几个迁移文件中。

  2. 如果我想用测试数据填充我的表,最好在单独的迁移中做到这一点,比如 Laravel 4 中的种子?

  3. 我应该在每次迁移中只有一个表吗?据了解,在我的 create_users 迁移中,我创建了三个表;用户,角色和角色用户,将它们放在单独的迁移中会更好吗?

4

1 回答 1

1
  1. 编辑现有迁移不是要走的路。否则,在部署到生产系统时将不会使用更改(迁移编号存储在数据库本身中以避免再次运行它们)。添加另一个迁移以进行更改。对于更新/更改迁移没有真正的命名约定。所以用你想要的方式命名它。但是,指出您进行迁移的原因的专有名称可能会有所帮助(例如 AddCommentsToUsers)。

  2. Rails 有一种播种机制(请参阅Screencast)。你应该使用这个。数据迁移有其缺点。

  3. 我更喜欢每次迁移一张表。如果第一个表创建完成但第二个没有完成,那么稍后当您尝试重新运行迁移时(在解决任何问题之后)会遇到麻烦。

于 2013-01-15T21:20:56.567 回答