添加的数据库字段迁移失败 'method not found'
Migration fails 'method not found' for added database field
我正在 运行 在我的 rails 6 应用程序上进行大量迁移。当我进行迁移时,尝试从上一个迁移步骤访问新添加字段的特定属性时,它总是失败。失败后,我只需重新 运行 迁移即可,它可以正常工作,显然它可以第二次找到该属性。对这里可能发生的事情有什么想法吗?
deleted_customer = Customer.new(first_name:"Deleted",last_name:"Deleted",active:false,customer_type_id:CustomerType.first.id)
deleted_customer.save(validate:false)
StandardError: An error has occurred, this and all later migrations canceled: unknown attribute 'active' for Customer.
来自失败之前的迁移
add_column :customers, :active, :boolean, default: true
我是不是漏掉了什么?
Rails 在第一次访问模型时读取模式信息并将其缓存(这样它就不必在每次访问模型时都读取数据库模式)。
您可以重置该缓存:
Customer.connection.schema_cache.clear!
Customer.reset_column_information
我正在 运行 在我的 rails 6 应用程序上进行大量迁移。当我进行迁移时,尝试从上一个迁移步骤访问新添加字段的特定属性时,它总是失败。失败后,我只需重新 运行 迁移即可,它可以正常工作,显然它可以第二次找到该属性。对这里可能发生的事情有什么想法吗?
deleted_customer = Customer.new(first_name:"Deleted",last_name:"Deleted",active:false,customer_type_id:CustomerType.first.id)
deleted_customer.save(validate:false)
StandardError: An error has occurred, this and all later migrations canceled: unknown attribute 'active' for Customer.
来自失败之前的迁移
add_column :customers, :active, :boolean, default: true
我是不是漏掉了什么?
Rails 在第一次访问模型时读取模式信息并将其缓存(这样它就不必在每次访问模型时都读取数据库模式)。
您可以重置该缓存:
Customer.connection.schema_cache.clear!
Customer.reset_column_information