【问题标题】:How can I use a custom mysql column type - varbinary(16) in Rails如何在 Rails 中使用自定义 mysql 列类型 - varbinary(16)
【发布时间】:2017-05-29 13:37:44
【问题描述】:

是否可以将 Rails 4.1.x 或 4.2.x ActiveRecord 设置为支持 MySQL 数据库的 varbinary(16) 列?

我想在 varbinary(16) 列中存储和访问 IPv6 地址。 MySQL 需要使用 INET6_ATON 和 INET6_NTOA 函数来转换为二进制文件。

用谷歌搜索,没有发现任何表明这是可能的或如何做到的。

我不能使用另一个数据库,所以我被 MySQL 卡住了。

【问题讨论】:

标签: mysql ruby-on-rails activerecord ipv6


【解决方案1】:

Rails 4 及更高版本将在明确存在限制且小于或等于 255 字节的情况下使用 VARBINARY

在您的迁移中,您可以指定:

add_column :my_table, :column_name, :binary, limit: 16

添加此功能是为了比以前使用的 BLOB 类型提供性能优势。 This pull request 包含详细信息。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多