ama*_*euk 4 migration postgresql base64 ruby-on-rails
我想将图像保存为base64字符串作为Rails中模型的一部分.
有没有人有迁移文件的建议?
我假设简单地设置一个String类型是不合适的,因为字符串的大小通常很大,例如> 2MB.
如果要克服大小限制,可以在迁移中使用text或binary代替string迁移.
API文档提供了此示例:
td.column(:picture, :binary, :limit => 2.megabytes)
# => picture BLOB(2097152)
Run Code Online (Sandbox Code Playgroud)
最大尺寸TEXT或BLOB(二)列取决于你的RDBMS(如MySQL和PostgreSQL),可用内存,并且某些配置设置.例如,在MySQL中,您应该看看该max_allowed_packet选项,您可以将其设置为最大1 GB的任何内容.
关于Paperclip的存储:
Paperclip不允许开箱即用的数据库存储,因此您必须为此编写一些自定义代码.谷歌给了我这个:
它已经过时了,所以我不确定它是否有用.
更重要的是:
请注意,通常不建议在数据库中存储文件,这就是Paperclip不支持它的原因.一些原因是一个坏主意:
当图像存储在DB中时,每个图像请求都需要调用您的Rails应用程序和数据库,这会对性能产生巨大的负面影响.如果您将图像存储为文件或存储在Amazon S3上,您的应用程序将扩展得更好.
您的数据库变得非常快,这使得备份数据变得更加困难.
由于不同的RDBMS对列大小,列类型等具有不同的规则,因此将大列迁移到不同的数据库(例如,从MySQL到PostgreSQL)可能会遇到困难.
所以我希望你有充分的理由去做.
| 归档时间: |
|
| 查看次数: |
3525 次 |
| 最近记录: |