tob*_*oby 20 ruby-on-rails rails-migrations ruby-on-rails-3
我正在开发一个已部署到某些测试和登台系统以及各种开发人员工作站的应用程序.我需要添加一些额外的参考数据,但我不知道如何添加它.
大多数建议说使用seed.rb,但我的理解是,这只在应用程序初始部署时运行一次.由于我们不想重建测试和暂存数据库,以便我们可以添加1行参考数据,是否有另一种方法来添加数据?
我正在考虑使用db迁移,这是正确的方法吗?
谢谢
nmo*_*ott 29
构建seed.rb文件以允许持续创建和更新数据.您不仅限于运行种子文件一次,如果您认为它仅用于初始部署,您将错过它在设置参考数据时可以提供的灵活性.
种子文件只是红宝石,所以你可以做以下事情:
user = User.find_or_initialize_by(email: 'bob@example.com')
user.name = 'Bob'
user.password = 'secret'
user.role = 'manager'
user.save!
Run Code Online (Sandbox Code Playgroud)
如果不存在,这将创建新数据,如果找到一些数据,则更新数据.
如果正确构造种子文件,还可以创建和更新依赖对象.
我建议使用bang save来确保在无法保存对象时引发异常.这是调试种子的最简单方法.
我使用种子库gem为我的种子数据提供更多结构,包括设置每个环境的数据,依赖种子等等.
我不建议对种子数据使用迁移.缺乏灵活性(例如,如何将种子数据仅定位到一个环境),并且没有真正的方法来构建可以在任何时间运行以刷新特定环境的可重用数据集.您还将拥有一组没有引用架构的迁移,并且每次要生成新的或更改当前数据时都必须创建新的迁移.
| 归档时间: |
|
| 查看次数: |
21357 次 |
| 最近记录: |