Django CommandError: App 'polls' has migra

2020-05-23 15:47发布

Trying to follow the tutorial at Django project.

The problem I've come across is that when performing the command: python manage.py sql polls I'm given the error:

CommandError: App 'polls' has migrations. only the sqlmigrate and sqlflush commands can be used when an app has migrations

So far I can't seem to find any guide on the internet, or this website for a solution to the program.

5条回答
手持菜刀,她持情操
2楼-- · 2020-05-23 16:37

The problem is that you are using Django 1.8 while going through 1.6 tutorial. Pay attention to the first words at the beginning of the tutorial:

This tutorial is written for Django 1.6 and Python 2.x. If the Django version doesn’t match, you can refer to the tutorial for your version of Django by using the version switcher at the bottom right corner of this page, or update Django to the newest version.

In your case, either downgrade to 1.6, or use the tutorial for the development (currently 1.8) version.

查看更多
你好瞎i
3楼-- · 2020-05-23 16:39

You can either run python manage.py makemigration followed by python manage.py migrate or just delete migrations folder

查看更多
闹够了就滚
4楼-- · 2020-05-23 16:39

With django 1.7, instead of deleting app-name/migrations folder, In your MIGRATION_MODULES entry of your site, you can rename the application dictionary value with an non-existing module name by adding some dummy string:

MIGRATION_MODULES['my_app'] += '_xx'

And then manage.py sqlclear my_app works fine.

查看更多
Fickle 薄情
5楼-- · 2020-05-23 16:42

In Django 1.8, you should run another command--makemigrations [your app name]:

$ python manage.py makemigrations polls

You should see something similar to the following:

Migrations for 'polls':
  0001_initial.py:
    - Create model Question
    - Create model Choice
    - Add field question to choice
查看更多
【Aperson】
6楼-- · 2020-05-23 16:48

Simply delete folder app-name/migrations.

In Django 1.7 and Python 3.4 the solution I found is to delete this folder and everything works now.

查看更多
登录 后发表回答