Django 1.8 迁移怪异
Django 1.8 migration weirdness
Django 1.8 似乎不喜欢我的应用名称 - "orders".
当我使用 1.8 创建新的 Django 项目时,无论数据库类型(Postgres 或 SQLite)如何,都会同步我的初始数据库以添加所有 Django 核心表。一切都按预期工作。
我可以使用几乎任何其他名称创建应用程序模块,但是当我这样做时:
$ python manage.py startapp orders
将orders
添加到INSTALLED_APPS
然后添加基本模型如:
from django.db import models
@python_2_unicode_compatible
class Order(models.Model):
created_on = models.DateTimeField(auto_now_add=True)
account = models.ForeignKey(Account)
is_complete = models.BooleanField(default=False)
class Meta():
app_label = 'Orders'
ordering = ['-created_on']
def __str__(self):
return 'Order #{} for {}'.format(self.pk, self.account)
然后做:
$ python manage.py makemigrations
我得到:
No changes detected in app 'orders'
我试过 Python 2.7.8 和 Python 3.4。我尝试了不同的虚拟环境,无论我如何称呼 Django 项目,我都得到了完全相同的结果。如果我什至在应用程序模块名称中的任何位置包含“_orders”,也会发生完全相同的结果。
我已经无数次清除了我的 .pyc
文件。我删除了我的数据库并重新创建了它。我不知道发生了什么,但是迁移对于我刚刚完成的一个巨大的 1.7.7 项目非常有效。
这是我的设置的相关部分。如果您还需要什么,请告诉我:
DEBUG = True
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': 'myapp',
'USER': 'postgres',
'PASSWORD': '',
'HOST': '127.0.0.1',
'PORT': '5432'
}
}
INSTALLED_APPS = (
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'accounts',
'animals',
'lib',
'orders',
)
有人有什么想法吗?我很茫然。
您的应用标签是大写的 - 它不会被识别为显示在您的 INSTALLED_APPS
中的小写应用 orders
。
Django 1.8 似乎不喜欢我的应用名称 - "orders".
当我使用 1.8 创建新的 Django 项目时,无论数据库类型(Postgres 或 SQLite)如何,都会同步我的初始数据库以添加所有 Django 核心表。一切都按预期工作。
我可以使用几乎任何其他名称创建应用程序模块,但是当我这样做时:
$ python manage.py startapp orders
将orders
添加到INSTALLED_APPS
然后添加基本模型如:
from django.db import models
@python_2_unicode_compatible
class Order(models.Model):
created_on = models.DateTimeField(auto_now_add=True)
account = models.ForeignKey(Account)
is_complete = models.BooleanField(default=False)
class Meta():
app_label = 'Orders'
ordering = ['-created_on']
def __str__(self):
return 'Order #{} for {}'.format(self.pk, self.account)
然后做:
$ python manage.py makemigrations
我得到:
No changes detected in app 'orders'
我试过 Python 2.7.8 和 Python 3.4。我尝试了不同的虚拟环境,无论我如何称呼 Django 项目,我都得到了完全相同的结果。如果我什至在应用程序模块名称中的任何位置包含“_orders”,也会发生完全相同的结果。
我已经无数次清除了我的 .pyc
文件。我删除了我的数据库并重新创建了它。我不知道发生了什么,但是迁移对于我刚刚完成的一个巨大的 1.7.7 项目非常有效。
这是我的设置的相关部分。如果您还需要什么,请告诉我:
DEBUG = True
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': 'myapp',
'USER': 'postgres',
'PASSWORD': '',
'HOST': '127.0.0.1',
'PORT': '5432'
}
}
INSTALLED_APPS = (
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'accounts',
'animals',
'lib',
'orders',
)
有人有什么想法吗?我很茫然。
您的应用标签是大写的 - 它不会被识别为显示在您的 INSTALLED_APPS
中的小写应用 orders
。