ruby-on-rails - 从 rails 4.2 升级到 rails6.0 时是否需要将迁移文件版本更改为 [6.0]
问题描述
我将我的 rails 4.2 项目升级到 rails5.2,然后现在升级到 rails6.0。我的旧迁移文件之一是:
class CreateLocations < ActiveRecord::Migration
def change
create_table :locations do |t|
t.string :name, :limit=>100, :null=>false
t.string :address1, :limit=>60, :null=>false
t.string :address2, :limit=>60, :null=>false
t.string :city, :limit=>30, :null=>false
t.string :state, :limit=>30, :null=>false
t.string :zip, :limit=>15, :null=>false
t.boolean :status
t.references :user
t.timestamps
end
end
end
现在,我将第一行更新为:
class CreateLocations < ActiveRecord::Migration[4.2]
是否正确,或者我需要为现有的旧迁移文件提供新版本 [6.0]。请帮忙
解决方案
对于您应该拥有的旧迁移ActiveRecord::Migration[4.2]
,这是为了迁移兼容性,以便迁移对较新的 rails 具有相同的效果(rails 5 更改了迁移 api,例如默认选项不同)。
一般来说 - 迁移现在具有它们最初创建的 rails 版本,并且在升级后运行类似(或失败,但至少不会默默地产生意外结果)
推荐阅读
- scala - Apache Spark:特征调用实现在列上抛出 java.io.NotSerializableException
- java - 从字符串生成 Rsa 公钥
- maven - 使用其 GAV 执行 maven liquibase 项目
- kubernetes - 如何在 kubernetes 集群中的 master+worker 和唯一的 worker 节点之间负载平衡 pod 分布
- vue.js - 如何使用推送到同一地址更新数据 - Vue路由器?
- python - 在 Pycharm 中导入 OpenCV 的问题
- r - 在其他矩阵的基础上选择行并计算每个选定行的平均值
- node.js - ejs view engine in nodejs doesn't show utf-8 charset
- sql - ORACLE SQL:如何更新表中的特定日期
- python - 找到超过某个阈值的概率