和...之间的不同rake db:migrate
and rake db:reset
我很清楚。我不明白的是如何rake db:schema:load
与前两者不同。
只是为了确保我在同一页面上:
-
rake db:migrate
- 运行尚未运行的迁移。
-
rake db:reset
- 清除数据库(大概做了rake db:drop
+ rake db:create
+ rake db:migrate
)并在新数据库上运行迁移。
-
数据库:迁移运行尚未运行的(单个)迁移。
-
数据库:创建创建数据库
-
db:drop删除数据库
-
数据库:架构:负载按照 schema.rb 在现有数据库中创建表和列。这将删除现有数据。
-
db:setupdb:create、db:schema:load、db:seed 是否执行
-
db:resetdb:drop、db:setup 是否执行
-
数据库:迁移:重置db:drop、db:create、db:migrate 是否执行
通常,您可以在通过新的迁移文件对架构进行更改后使用 db:migrate (仅当数据库中已有数据时这才有意义)。 db:schema:load 在您设置应用程序的新实例时使用。
对于 Rails 3.2.12:
我刚刚检查了源代码,现在的依赖关系是这样的:
-
数据库:创建为当前环境创建数据库
-
数据库:创建:全部为所有环境创建数据库
-
db:drop删除当前环境的数据库
-
数据库:删除:全部删除所有环境的数据库
-
数据库:迁移为当前环境运行尚未运行的迁移
-
数据库:迁移:向上运行一个特定的迁移
-
数据库:迁移:向下回滚一个特定的迁移
-
数据库:迁移:状态显示当前迁移状态
-
数据库:回滚回滚最后一次迁移
-
数据库:转发将当前架构版本推进到下一个架构版本
-
db:seed(仅)运行 db/seed.rb 文件
-
数据库:架构:负载将架构加载到当前环境的数据库中
-
数据库:架构:转储转储当前环境的架构(并且似乎也创建了数据库)
-
db:setup运行 db:create db:schema:load db:seed
-
db:reset运行 db:drop db:setup
-
数据库:迁移:重做根据指定的迁移运行 (db:migrate:down db:migrate:up) 或 (db:rollback db:migrate)
-
数据库:迁移:重置运行 db:drop db:create db:migrate
欲了解更多信息,请查看https://github.com/rails/rails/blob/v3.2.12/activerecord/lib/active_record/railties/databases.rake https://github.com/rails/rails/blob/v3.2.12/activerecord/lib/active_record/railties/databases.rake(对于 Rails 3.2.x)和https://github.com/rails/rails/blob/v4.0.5/activerecord/lib/active_record/railties/databases.rake https://github.com/rails/rails/blob/v4.0.5/activerecord/lib/active_record/railties/databases.rake(适用于 Rails 4.0.x)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)