Rails 6、ActiveRecord和Mysql 8、如何设置一个字符串字段的长度为512个字符?
Rails 6, ActiveRecord and Mysql 8, how set the length of a string field to 512 chars?
有许多示例解释了如何创建不同长度的文本字段,但只有这些选项:
- Tiny:256 字节(Rails 中的等效字符串)
- 文本:65_535 字节(相当于 Rails 的文本)
- 中文本:16_777_215 字节
- 长文本:4_294_967_295 字节
我找到的所有参考资料都很旧(> 3 年)。这仍然有效吗?
我想创建一个 512 个字符的字符串字段。我应该去 Text
专栏吗?看起来像是在浪费 space。我可以创建一个 512 字节的特定字段吗?
看起来在新版本中 Mysql 文本字段允许更精细的字段大小。
如果我在迁移中这样做:
change_column :scrapers, :url, :string, limit: 512
我在 sql 日志中看到了这个:
ALTER TABLE `scrapers` CHANGE `url` `url` varchar(512) NOT NULL
mysql table 结构中的这个:
`url` varchar(512) COLLATE utf8mb4_bin NOT NULL,
有许多示例解释了如何创建不同长度的文本字段,但只有这些选项:
- Tiny:256 字节(Rails 中的等效字符串)
- 文本:65_535 字节(相当于 Rails 的文本)
- 中文本:16_777_215 字节
- 长文本:4_294_967_295 字节
我找到的所有参考资料都很旧(> 3 年)。这仍然有效吗?
我想创建一个 512 个字符的字符串字段。我应该去 Text
专栏吗?看起来像是在浪费 space。我可以创建一个 512 字节的特定字段吗?
看起来在新版本中 Mysql 文本字段允许更精细的字段大小。
如果我在迁移中这样做:
change_column :scrapers, :url, :string, limit: 512
我在 sql 日志中看到了这个:
ALTER TABLE `scrapers` CHANGE `url` `url` varchar(512) NOT NULL
mysql table 结构中的这个:
`url` varchar(512) COLLATE utf8mb4_bin NOT NULL,