migrate 和makemigrations 命令

在你改动了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

posted @ 2017-06-12 11:51  fanren224  阅读(471)  评论(0)    收藏  举报