转载

将 Django 项目从 MySQL 迁移至 PostgreSQL

本篇文章实战演示如何把一个使用 MySQL 的经典 Django 项目的数据库迁移到更省心的 PostgreSQL 上。

起因

上周,我的 Manico 网站后台收到了一个网站崩溃的报告,这个崩溃是名叫「Yale」的用户通过「联系我」这个表单给我反馈 Manico 的问题,他在反馈中打了三个 emoji,然后点击了「发送」按钮…然后,我的网站就 500 了。

这是因为 MySQL 默认的 utf8 字符集并不支持存储 emoji 这样四个字节的字符,于是就会在数据保存的时候引发「Incorrect string value」的错误,进而导致网站 500 。

解决办法也很简单,把 MySQL 的字符集配置成 utf8mb4 就可以了,但是要去改旧数据库的表格、可能需要迁移旧数据…不太喜欢这种方式。

另外,不仅仅是 Manico 的网站用的是 Django + MySQL 的组合,本站 IMTX 也是,所以我在文章中从来就不能用 emoji(当然现在可以了

原文  http://www.udpwork.com/item/15756.html
正文到此结束
Loading...