AFAIK вы не можете преобразовать один миграции в SQL, но вы можете иметь выход ActiveRecord вашу схему в SQL вместо Ruby.
# in config/application.rb
config.active_record.schema_format = :sql
Это даст вам выход SQL в вашей схеме db/schema вместо Ruby DSL. Но ни один формат не будет содержать фрагмент кода, устанавливающий токен пользователя.
Кроме того, считается, что Bad Idea включает код модификации БД, подобный этому в вашей миграции. Например, что произойдет, если вы избавитесь от этой модели или переименуете ее, когда эта миграция закончится, она потерпит неудачу. По крайней мере, оберните его в чек для модели. или начать/спасение/конца
if defined? User
User.all.each do |user|
user.unsubscribe_token = ActiveSupport::SecureRandom.hex(18)
end
end
или
begin
User.all.each do |user|
user.unsubscribe_token = ActiveSupport::SecureRandom.hex(18)
end
rescue
end
И, наконец, что фрагмент кода не будет делать то, что вы хотели, так как вы не сохранение модели после установки маркеров, либо использовать update_attributes
или звоните user.save