gpt4 book ai didi

ruby-on-rails - 是 rake db :create and rake db:migrate idempotent?

转载 作者:行者123 更新时间:2023-12-04 03:51:21 24 4
gpt4 key购买 nike

我是 Rails 的新手,我想弄清楚 rake db:createrake db:migrate是幂等的。

换句话说,我可以对我的数据库(postgres 或 mysql)重复运行这两个命令而不会引起问题吗?

这个想法是自动化 Rails 部署,并在每次部署 Rails 应用程序时运行这些命令。我想确保它不会以某种方式影响数据库。

关于 rake db 迁移的幂等性的任何其他问题都非常感谢。

最佳答案

是的,它们是幂等的,运行这两个命令应该只会使您的数据库“保持最新”,一旦您将它们运行完成,然后再次运行它们应该什么都不做。

但是,设置全新机器的更好方法是使用

rake db:setup
db:setup只需按顺序运行这些任务:
db:create
db:schema:load
db:seed

通知 db:setup不运行 db:migrate ,而只是运行 db:schema:load .仅当您将现有数据库升级到更新版本时才需要迁移,因为它们描述了架构的两个版本之间的差异。但是,当您完全设置新数据库时,您可以跳过整个迁移历史并跳转到架构的最新状态,即使用 db:schema:load 加载当前架构。 .和 db:seed运行您的 db/seeds.rb用于创建初始数据的文件(如果与您的应用程序相关)。

运行 rake -T详细描述所有 Rails Rake 任务,或查看 ActiveRecord databases.rake 源文件直接读取代码。

关于ruby-on-rails - 是 rake db :create and rake db:migrate idempotent?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17815769/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com