今天我开始进入postgresql的第一步,因为它是由Django团队推荐的。
我遇到了几个问题,我一个接一个耐心地解决了。
1)在postgresql下创建表需要以不同的操作系统登录名登录,您甚至不知道密码。好的,我找到了解决方案并创建了数据库。
2)运行syncdb后,你不能简单地执行这样的简单插入sql:
INSERT INTO App_contacttype (contact_type, company_id) VALUES ('Buyer', 1),('Seller', 1);
由于Django使用引号创建它,因此表格区分大小写,因此它必须是这样的:
INSERT INTO "App_contacttype" (contact_type, company_id) VALUES ('Buyer', 1),('Seller', 1);
但问题似乎永远不会结束。现在突然执行插入脚本说
ERROR: value too long for type character varying(40)
SQL state: 22001
在MySQL中这没问题。我不知道,现在我有点冷,也许我应该坚持使用MySQL。
我考虑使用postgresql的唯一原因是一些研究表明postgresql在改变Schema方面比MySQL有更好的支持。
然而,考虑到http://south.aeracode.org/会消除同步Schema的所有痛苦,无论基础数据库是什么,我甚至还需要担心Schema的变化吗?