我在django1.8上有一个初始数据固定装置的应用程序。当我运行manage.py migrate
时,我得到以下输出:
Operations to perform:
Synchronize unmigrated apps: food, locations, messages, staticfiles, core
Apply all migrations: auth, sessions, admin, contenttypes
Synchronizing apps without migrations:
Creating tables...
Running deferred SQL...
Installing custom SQL...
/home/myuser/venv/lib/python3.4/site-packages/django/core/management/commands/loaddata.py:229: RemovedInDjango19Warning: initial_data fixtures are deprecated. Use data migrations instead.
RemovedInDjango19Warning
Installed 87 object(s) from 1 fixture(s)
Running migrations:
No migrations to apply.
因此,似乎安装了fixture,但实际上并不是-当我登录到我的postgres用户并运行psql
和\dt
时,没有列出任何表(我确保首先使用\c mydatabase
连接到数据库)!当尝试在浏览器中查看应用程序时,我得到:ProgrammingError at / relation "locations_openinghours" does not exist
。(这恰好是应用程序尝试访问的第一个表)。在
我解决了,但这是个愚蠢的问题。首先,当第一次运行
python manage.py makemigrations
时,您应该指定要为哪个应用迁移-所以我使用了python manage.py makemigrations myapp
。其次,我设置项目的方式,manage.py
默认使用dev设置,这是在向SQLite数据库写入数据。我添加了settings=core.settings.production
标志,它起作用了。在您可以尝试以下步骤,看看它是否解决了您的问题:
django_migrations
表中应用程序迁移的数据库记录。在python manage.py makemigrations <appname>
python manage.py migrate <appname>
除上述之外,您可以尝试向每个模型类添加元类设置}
managed = True
和{即
class Food(models.Model): class Meta: app_label = "food" managed = True
你班上的其他同学和你一样。当然,为你所有的模型添加这个Meta。{{{cd7}的设置要低一些。在
相关问题 更多 >
编程相关推荐