我想在 Rails 7 上将回形针 gem 迁移到 active_storage Ruby

I want to migrate paperclip gem to active_storage Ruby on Rails 7

...像这样:paperclip2active_storage

更新 请务必观看 linked 视频演示,因为文本文档并未展示所有怪癖!

所以我安装并配置了 rails 7 和 gem 'mini_magick'。现在我想引用的脚本将更新我所有的模型、视图和控制器:

但是,当我 运行 它时,我得到这样的错误:

leder@home-ryzen-desktop:~/Git/gmr_production_heroku$ ruby migration.rb 
migration.rb:1:in `<main>': uninitialized constant ActiveRecord (NameError)

migration.rb 如引用的 link!

中所述

如何迁移我的 RoR 应用程序?


我已从 database.yml 中删除 development 并添加到 storage.yml:

test:
  service: Disk
  root: <%= Rails.root.join("tmp/storage") %>

local:
  service: Disk
  root: <%= Rails.root.join("storage") %>

amazon:
...

现在我得到这个错误:

leder@home-ryzen-desktop:~/Git/gmr_production_heroku$ bundle exec rake db:create
rake aborted!
ActiveRecord::AdapterNotSpecified: The `development` database is not configured for the `development` environment.

  Available database configurations are:

  production
/home/leder/.rbenv/versions/3.0.1/bin/bundle:23:in `load'
/home/leder/.rbenv/versions/3.0.1/bin/bundle:23:in `<main>'
Tasks: TOP => db:create => db:load_config
(See full trace by running task with --trace)

如何将其迁移到 active_storage


后续问题可以在这里找到:Part2

您需要 运行 在 Rails 的上下文中进行迁移。所以 ruby migration.rb 不会起作用。

您需要使用 bin/rails g migration <migration_name> 生成迁移。

然后将代码复制到迁移中后,运行 bin/rails db:migrate

P.S。 Rails 7 还没有发布。所以转向 Rails 7 可能为时过早,因为它可能仍然存在错误,而且许多 gem 可能无法完全支持它