【发布时间】:2019-09-30 15:36:57
【问题描述】:
当我运行 makemigrations 然后进行迁移时,我得到以下输出:
(roundwellenv) ruben@ruben-H81M-D2V:~/roundwell$ ./dev_migrations.sh
No changes detected in apps 'contenttypes', 'parents', 'admin', 'tips', 'tutors', 'login', 'auth', 'quiz', 'sessions'
Operations to perform:
Apply all migrations: admin, auth, contenttypes, login, parents, quiz, sessions, tips, tutors
Running migrations:
Applying contenttypes.0001_initial... OK
Applying contenttypes.0002_remove_content_type_name... OK
Applying auth.0001_initial... OK
Applying auth.0002_alter_permission_name_max_length... OK
Applying auth.0003_alter_user_email_max_length... OK
Applying auth.0004_alter_user_username_opts... OK
Applying auth.0005_alter_user_last_login_null... OK
Applying auth.0006_require_contenttypes_0002... OK
Applying auth.0007_alter_validators_add_error_messages... OK
Applying auth.0008_alter_user_username_max_length... OK
Applying auth.0009_alter_user_last_name_max_length... OK
Applying auth.0010_alter_group_name_max_length... OK
Applying auth.0011_update_proxy_permissions... OK
Applying login.0001_initial... OK
Applying admin.0001_initial... OK
Applying admin.0002_logentry_remove_auto_add... OK
Applying admin.0003_logentry_add_action_flag_choices... OK
Applying parents.0001_initial... OK
Applying quiz.0001_initial... OK
Applying sessions.0001_initial... OK
Applying tips.0001_initial... OK
Applying tutors.0001_initial... OK
(roundwellenv) ruben@ruben-H81M-D2V:~/roundwell$ python manage.py createsuperuser
You have 21 unapplied migration(s). Your project may not work properly until you apply the migrations for app(s): admin, auth, contenttypes, login, parents, quiz, sessions, tips, tutors.
Run 'python manage.py migrate' to apply them.
我知道确实有问题,因为即使我从迁移文件夹和干净的 sqlite3 db 中删除 pycache 内容和内容,它实际上也找不到任何需要应用的迁移,除非我指定要创建迁移的应用程序为了。关于可能导致这种情况的任何线索?我怀疑它可能是我的自定义登录应用程序,但是一旦迁移完成(就像它们在系统上一样,站点实际上正在运行),数据库就可以正常工作。
【问题讨论】:
-
执行
manage.py showmigrations并将迁移模块的名称与应用的模块匹配。 db 中有一个表,它记录了应用了哪些迁移,似乎那里不匹配。 -
什么是“dev_migrations.sh”?我怀疑错误在于该脚本。在任何一种情况下,您都可能需要将其发布,以便任何人都能回答您的问题。
-
@VinayPai 那只是
source env/bin/activate && python manage.py makemigrations && python manage.py migrate,所以不幸的是,这不会是来源 -
@ic_fl2 只是为了排除另一种可能性,您是否在设置文件中指定了 sqlite3 数据库的绝对路径?似乎 migrate 命令和 createsuperuser 在不同的数据库上运行。如果您连续两次运行 dev_migrations.sh,它会说“没有要应用的迁移”吗?
标签: python django django-migrations