Django不在Postgres数据库中创建任何表格

2024-04-27 04:12:29 发布

您现在位置:Python中文网/ 问答频道 /正文

我在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。(这恰好是应用程序尝试访问的第一个表)。在


Tags: appsto数据pycore应用程序sqldata
2条回答

我解决了,但这是个愚蠢的问题。首先,当第一次运行python manage.py makemigrations时,您应该指定要为哪个应用迁移-所以我使用了python manage.py makemigrations myapp。其次,我设置项目的方式,manage.py默认使用dev设置,这是在向SQLite数据库写入数据。我添加了 settings=core.settings.production标志,它起作用了。在

您可以尝试以下步骤,看看它是否解决了您的问题:

  1. 删除应用程序的所有迁移文件,以及django_migrations表中应用程序迁移的数据库记录。在
  2. 运行:python manage.py makemigrations <appname>
  3. 运行:python manage.py migrate <appname>

除上述之外,您可以尝试向每个模型类添加元类设置managed = True和{}

class Food(models.Model): class Meta: app_label = "food" managed = True

你班上的其他同学和你一样。当然,为你所有的模型添加这个Meta。{{{cd7}的设置要低一些。在

相关问题 更多 >