在django表

时间:2015-12-15 01:37:46

标签: python mysql django

我在mysql中有以下表格:

CREATE TABLE `portal_asset` (
  `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
  `asset_id` int(11) NOT NULL
) ENGINE=InnoDB AUTO_INCREMENT=1000000 DEFAULT CHARSET=utf8;

我如何在django中创建相同的表?到目前为止,我有以下内容,但不确定如何设置AUTO_INCREMENT值 -

class PortalAsset(models.Model):
    id = models.IntegerField(primary_key=True)
    asset_id = models.IntegerField(unique=True)
    class Meta:
        db_table = u'portal_asset'

如何设置AUTO_INCREMENT值以1000000开始?相当于:

alter table portal_asset AUTO_INCREMENT=1000000;

1 个答案:

答案 0 :(得分:2)

您可以在迁移中使用RunSQL操作来执行必要的SQL:

migrations.RunSQL("ALTER TABLE portal_asset AUTO_INCREMENT=1000000;")

如果您还没有运行任何迁移,可以将其添加到第一次迁移中,以确保在设置新值之前不插入任何行。否则,您必须在新迁移中添加此操作。您可以使用python manage.py makemigrations --empty <yourappname>创建新的空迁移。