【发布时间】:2014-07-17 20:39:06
【问题描述】:
我是 Django 的新手。我在项目中有一个应用程序,它是通过测试驱动开发开发的。在生产中,我们使用 MySQL 作为数据库引擎,但如果我使用 MySQL 运行测试:
./manage test myapp
然后它会花费太多时间(2-4 分钟)来创建数据库,尽管测试非常快(大约一秒)。
如果我使用 SQLite,那么测试只需要几秒钟,这对我来说是完美的。但问题是我经常需要管理界面和 MySQL 上的本地数据库。
如何让django在sqlite上运行测试并用mysql启动runserver?
现在我在 settings/local.py 中使用这些设置,但我应该注释/取消注释行以根据我目前所做的活动来更改数据库。
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3', # Use for testing
'NAME': 'databasename.db3',
# 'ENGINE': 'django.db.backends.mysql', # Use if need admin on localserver
# 'NAME': 'databasename',
'USER': 'myuser', # Not used with sqlite3.
'PASSWORD': 'somepassword', # Not used with sqlite3.
'HOST': '', # Set to empty string for localhost. Not used with sqlite3.
'PORT': '', # Set to empty string for default. Not used with sqlite3.
'TEST_CHARSET': "utf8", #option to make tesing database with utf8
'TEST_COLLATION': "utf8_general_ci",
}
}
【问题讨论】:
标签: python mysql django sqlite django-testing