nit*_*der 12 ruby migration activerecord ruby-on-rails
我已经看过很多关于ActiveRecord Migrations的讨论,以及它们是否应该用于更改应用程序中的数据,有些人说是的,有些人说不.我的问题是,如果您没有使用迁移来执行此操作,那么您使用的是什么?你写的另一个脚本?
我之后提出了关于替代方法的建议以及为什么它们可能比仅使用迁移更好.
Mik*_*use 16
如果您使用提供的,会出现一个问题
rake db:reset
Run Code Online (Sandbox Code Playgroud)
和
rake db:schema:load
Run Code Online (Sandbox Code Playgroud)
任务,schema.rb
用作设置数据库的基础.所以没有数据被加载而且你被卡住了.
在敏捷Web开发使用Rails,第三版,你应该得到(?如果Ruby的书是"镐"的书,这算是"吊床"的书,顺便说一句),如果您还没有这样做的话,DHH说:
...迁移实际上并不意味着携带种子数据.它们在性质上太过时间,无法可靠地做到这一点.迁移是为了让您从一个版本的架构到下一个版本,而不是从头开始创建一个新的架构 - 我们有db/schema.rb文件.
因此,只要您真正开始使用真正的应用程序,人们就不会在设置应用程序时运行早期迁移.它们将从db/schema.rb中存储的任何版本开始,并忽略所有先前的迁移.这意味着迁移创建的任何数据都不会进入数据库,因此您不能依赖它.
有许多替代方法可以获得更永久的种子数据.最简单的可能只是在db/seed.rb中创建一个新文件,其中包含那些将进行设置的Product.create调用.然后可以在rake db:schema之后调用此文件:load创建初始模式.
归档时间: |
|
查看次数: |
2337 次 |
最近记录: |