jos*_*aka 25 ruby-on-rails ruby-on-rails-5.1
我输入rails db:migrate并收到以下错误.我用谷歌搜索,有人说像将迁移版本从[4.2]更改为[5.1],但它仍然无效.
rails db:migrate rails aborted!StandardError:发生错误,此以及所有后续迁移都已取消:
不支持直接继承ActiveRecord :: Migration.请指定为以下内容编写的Rails版本:
class CreateCkeditorAssets <ActiveRecord :: Migration [4.2]
Tac*_*ons 43
Aditya已经写了答案,手动更改所有迁移是一项忙乱的任务,所以我写了一个单行程脚本来做那个
在linux(Gnu sed)
grep -rl "ActiveRecord::Migration$" db | xargs sed -i 's/ActiveRecord::Migration/ActiveRecord::Migration[4.2]/g'
Run Code Online (Sandbox Code Playgroud)
在Mac(BSD sed)
grep -rl "ActiveRecord::Migration$" db | xargs sed -i "" "s/ActiveRecord::Migration/ActiveRecord::Migration[4.2]/g"
Run Code Online (Sandbox Code Playgroud)
请注意,您可以4.2使用要升级到5.1的导轨进行替换
Adi*_*tya 36
Rails 5改变了创建迁移的方式.你必须像这样指定Rails版本Rails 5(假设你正在使用Rails 5.1):
class CreateCkeditorAssets < ActiveRecord::Migration[5.1]
Run Code Online (Sandbox Code Playgroud)
或者,您可以尝试创建测试迁移,并查看您的Rails版本如何生成迁移,然后从那里获取:
rails g model Test name:string
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9857 次 |
| 最近记录: |