在django中创建模型时指定数据库引擎

时间:2016-05-03 11:16:03

标签: django django-models

这存储在设置文件中 -

DATABASES = {
 'default': {
    'ENGINE'  : 'django.db.backends.mysql',
    'NAME'    : 'db_test',
    'USER'    : 'root',
    'PASSWORD': '',
    'HOST'    : 'localhost',
    'PORT'    : '',
    'CONN_MAX_AGE': 45,
    'OPTIONS' : {
        'init_command': 'SET storage_engine=INNODB',
    }
},

我需要使用MYISAM引擎创建一个表,如何在定义模型时设置它。

例如 -

类Test(models.Model):     def unicode (个体经营):         返回'%s' %self.name

class Meta:
    db_table = 'Test'

user = models.CharField(max_length=100)
name = models.CharField(max_length=200)
type = models.IntegerField()

我需要在MYISAM中创建此表而不更改设置文件。 我怎么能这样做?

2 个答案:

答案 0 :(得分:0)

我认为最好的方法是手动完成。

删除

'OPTIONS' : {
    'init_command': 'SET storage_engine=INNODB',
}

从您的设置中执行

ALTER TABLE <tablename> ENGINE=MYISAM;
在Django为你的模型创建表之后

答案 1 :(得分:0)

您是否尝试过迁移?它应该工作。

output-print

来源:https://docs.djangoproject.com/en/1.9/ref/migration-operations/#runsql