【问题标题】:When I run db:migrate it changes my :point database types to :integer in the schema.rb. Why?当我运行 db:migrate 时,它​​会将我的 :point 数据库类型更改为 schema.rb 中的 :integer。为什么?
【发布时间】:2021-07-09 01:09:41
【问题描述】:

在我的 Ruby on Rails 应用程序中,每当我运行“rails db:migrate”时,它会将现有的“point”类型字段更改为“integer”,即使它不是我定义的任何迁移的一部分。我的数据库是一个 mySQL 数据库。这可能是什么原因造成的?

【问题讨论】:

  • 数据库转储程序(将 sql 模式转换为 ruby​​ 的 rails 组件)可能是罪魁祸首。您可能需要切换到 SQL 转储。 blog.appsignal.com/2020/01/15/…

标签: mysql ruby-on-rails ruby activerecord


【解决方案1】:

可能是因为 ActiveRecord 中不存在点法。 AR 原生支持 :primary_key、:string、:text、:integer、:float、:decimal、:datetime、:timestamp、:time、:date、:binary、:Boolean。 您可以尝试使用非本地类型:

t.point :point

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-08-03
    • 2012-10-04
    • 1970-01-01
    • 2021-10-11
    • 1970-01-01
    • 2017-03-21
    • 2019-08-10
    相关资源
    最近更新 更多