将satchmo存储从sqlite3迁移到mysql

时间:2012-11-03 10:20:27

标签: mysql django satchmo

我有一个在sqlite3上运行的功能齐全的satchmo商店。我需要改为mysql。无论我是创建新数据库还是移植旧数据库,我都会在各种地方获得http错误500。例如,如果我有一个新的数据库,并且我创建一个用户帐户似乎一切正常。如果我然后尝试更新用户的配置文件(这是实际和扩展的用户配置文件),立即我得到服务器500错误。它只是对该URL不感兴趣(http://127.0.0.1:8000/accounts/update/)

奇怪的是,如果我以管理员身份登录并转到管理页面,那么我可以更新该用户的(扩展)配置文件没有任何问题。事实上,我从未在管理页面上看到任何错误。

以下是我为mysql设置的方法:

apt-get install mysql-client  
apt-get install mysql-server  
apt-get install python-mysqldb  
mysql -u root -p  
    mysql> USE mysql;  
    mysql> CREATE DATABASE mystore CHARACTER SET utf8;  
    mysql> GRANT ALL PRIVILEGES ON mystore.* TO storeuser@localhost IDENTIFIED BY 'secret';  
    mysql> FLUSH PRIVILEGES;  

settings.py:

DATABASE_ENGINE = 'mysql'       
DATABASE_NAME = 'mystore'
DATABASE_USER = 'storeuser'
DATABASE_PASSWORD = 'secret'
DATABASE_HOST = ''         
DATABASE_PORT = ''         
DATABASE_OPTIONS = { "init_command": 'SET NAMES "utf8"' , "init_command":'SET storage_engine=INNODB' , }

然后创建一个新的数据库,我刚刚做了:

python manage.py syncdb
python manage.py runserver

修改1

以下是炸弹爆炸的代码:

class myExtendedContactInfoForm(ExtendedContactInfoForm):
def __init__(self, *args, **kwargs):
     # The following line is where it produces the error
    super(myExtendedContactInfoForm, self).__init__(*args, **kwargs)

修改2

似乎db中缺少某些内容,因为如果我回到使用sqlite后端,然后删除sqlite db(然后运行'python manage.py syncdb'),我会得到完全相同的症状。好像我需要做的不仅仅是syncdb。

我在这里缺少什么?

0 个答案:

没有答案