migrate 和makemigrations 命令

mac2022-06-30  88

在你改动了app下 models.py的内容之后执行下面的命令:

Python manger.py makemigrations

相当于 在该app下建立 migrations目录,并记录下你所有的关于modes.py的改动,比如0001_initial.py, 但是这个改动还没有作用到数据库文件

你可以手动打开这个文件,看看里面是什么

class Migration(migrations.Migration): initial = True dependencies = [ ] operations = [ migrations.CreateModel( name='Person', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('name', models.CharField(max_length=30)), ('age', models.IntegerField()), ], ), ]

在此之后执行命令

python manager.py migrate

将该改动作用到数据库文件,比如产生table之类

当makemigrations之后产生了0001_initial.py 文件,你可以查看下该migrations会对应于什么样子的SQL命令

python manger.py sqlmigrate appname 0001

大概是这个样子的:

hanli@ubuntu:~/PycharmProjects/learn_models$ python manage.py sqlmigrate people 0001 BEGIN; -- -- Create model Person -- CREATE TABLE "people_person" ("id" integer NOT NULL PRIMARY KEY AUTOINCREMENT, "name" varchar(30) NOT NULL, "age" integer NOT NULL); COMMIT;

转载自: http://blog.csdn.net/yang1z1/article/details/52235424

转载于:https://www.cnblogs.com/fanren224/p/8457219.html

最新回复(0)