如何在 RoR 中手动更新架构版本?

发布于 2024-08-24 13:45:42 字数 151 浏览 2 评论 0原文

我有一个迁移,通过调用 ActiveRecord::Base.connection() 方法“execute”向 MySQL 添加触发器。除了未更新架构版本之外,它工作正常。我怀疑这是因为数据库结构本身没有改变(没有列和表更新)。

有没有办法在我的迁移中强制更新架构版本?

I have a migration which adds triggers to MySQL via invoking ActiveRecord::Base.connection() method "execute". It works fine except what schema version is not updated. I suspect that is because the DB structure by itself is not changed (no columns and table updates).

Is there a way to force the schema version update in my migration?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

郁金香雨 2024-08-31 13:45:42

实际上,我认为这应该根据我对 :migrate 任务定义方式的观察来更新您的 schema.rb 文件版本。

task :migrate => :environment do
  ActiveRecord::Migration.verbose = ENV["VERBOSE"] ? ENV["VERBOSE"] == "true" : true
  ActiveRecord::Migrator.migrate("db/migrate/", ENV["VERSION"] ? ENV["VERSION"].to_i : nil)
  Rake::Task["db:schema:dump"].invoke if ActiveRecord::Base.schema_format == :ruby
end

如果没有更新,也许您的 :schema_format 不是 :ruby

Actually I think this should be updating your schema.rb file version based on my observations of how the :migrate task is defined.

task :migrate => :environment do
  ActiveRecord::Migration.verbose = ENV["VERBOSE"] ? ENV["VERBOSE"] == "true" : true
  ActiveRecord::Migrator.migrate("db/migrate/", ENV["VERSION"] ? ENV["VERSION"].to_i : nil)
  Rake::Task["db:schema:dump"].invoke if ActiveRecord::Base.schema_format == :ruby
end

If it's not updated, perhaps your :schema_format is not :ruby?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文