&引用;python manage.py syncdb“;不创建表

&引用;python manage.py syncdb“;不创建表,python,django,Python,Django,我第一次跑步 python manage.py syncdb 它为我创建了数据库和表,然后我尝试添加更多的应用程序,下面是我所做的: 通过创建应用程序 python manage.py startapp newapp 然后我在setting.py中将'newapp'添加到已安装的应用程序中: INSTALLED_APPS = ( 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.content

我第一次跑步

python manage.py syncdb
它为我创建了数据库和表,然后我尝试添加更多的应用程序,下面是我所做的:

通过创建应用程序

python manage.py startapp newapp
然后我在setting.py中将
'newapp'
添加到
已安装的应用程序中:

INSTALLED_APPS = (
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'newapp',
)
最后我运行了
syncdb

python manage.py syncdb
下面是我得到的结果:

Creating tables ...
Installing custom SQL ...
Installing indexes ...
Installed 0 object(s) from 0 fixture(s)
我检查了数据库,没有名为
newapp
的表,没有包含
newapp
的表名,如果您运行:

python manage.py inspectdb > somefile.txt

您可以快速查看数据库结构是否与django模型匹配。

我也遇到了同样的问题,并注意到它创建了一个看起来不是空的db.sqlite3文件:

$ ls -l
-rw-r--r--   1 sauron  staff  122880 Jul 31 01:22 db.sqlite3
我尝试使用文件名作为参数再次运行sqlite,结果成功:

$ sqlite3 db.sqlite3 
SQLite version 3.7.13 2012-07-17 17:46:21
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite> .schema
CREATE TABLE "auth_group" (
    "id" integer NOT NULL PRIMARY KEY,
    "name" varchar(80) NOT NULL UNIQUE
);
... many rows ...

我也遇到了这个问题,通过删除我应用程序中的migrations文件夹,我得以解决这个问题。不知何故,它已经被创建了,并且诱使syncdb认为它已经被完全迁移了,但是这些迁移脚本实际上并没有做任何有用的事情。显然,如果您确实有要保存的迁移,请不要尝试此操作,但我正在使用一个全新的应用程序和型号。

我也遇到了同样的问题,但我没有任何“迁移”文件夹。我像下面那样解决了它

我刚刚用型号代码添加了
app\u标签

class MyModel(models.Model):
...
    class Meta:
        managed = True      # add this
        app_label = 'myapp' # & this
另外,通过在
myapp/models/\uuuuu init\uuuuuuuuu.py

from model_file.py import MyModel

您应该使用这个命令

python manage.py migrate

您在manage.py所在的位置运行syncdb时,我尝试了上面的大多数想法:

  • 确保导入了
    models.py
    (验证模块在makemigrate期间执行)
  • 删除
    迁移
    文件夹
  • 设置
    managed=True
    (这是默认设置)
  • 使用了
    python manage.py inspectdb
    (如果我手动创建了表,它会正确地转储该表)
关键在于分别在应用程序上运行
makemigrations

python manage.py makemigrations


您在newapp中有型号吗?请展示你的模型。py.@timo.rieber是的,你是对的。非常感谢!!非常有用。谢谢好的,我发现我的数据库结构与我的模型不匹配。如何修复此问题?引用部分很重要我遇到了相同的问题,删除迁移文件夹允许syncdb针对我的新app+模型运行。如果您在设置文件中对已安装的应用添加“south”注释,则可以创建整个数据库