在Django表中设置AUTOINCREMENT值
问题内容:
我在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;
问题答案:
您可以RunSQL
在迁移中使用操作来执行必要的SQL:
migrations.RunSQL("ALTER TABLE portal_asset AUTO_INCREMENT=1000000;")
如果尚未运行任何迁移,则可以将其添加到第一次迁移中,以确保在设置新值之前不插入任何行。否则,您将不得不在新迁移中添加此操作。您可以使用创建一个新的空迁移python manage.py makemigrations --empty <yourappname>
。