我知道有很多关于这个问题的问题,我查看了解决方案,不幸的是,这些都没有为我工作。
我创建了一个名为“usermanagement”的新应用,并为应用添加了一个模型。添加模型后,我在设置中将用户管理添加到INSTALLED_APPS。然后我运行了python manage.py makemigrations和python manage.py migrate。这一切都很好!我也尝试使用app-name运行迁移。
当我尝试使用以下方法将新模型实例添加到Python-Django shell中的数据库时,问题就开始了:
>>>a = ClubOfficial(name="randomName", email="randomemail@random.com")
>>>a.save()
我收到以下错误:
django.db.utils.ProgrammingError:关系 “usermanagement_clubofficial”不存在 第1行:插入“usermanagement_clubofficial”(“名称”,“电子邮件”)......
以下是型号代码:
class ClubOfficial(models.Model):
name = models.CharField(max_length=254)
email = models.EmailField(max_length=254)
如果有帮助,我使用postgresql,并尝试重新启动服务器。程序中的其他应用程序也可以正常工作,只是usermanagemenet存在这个问题。
有谁知道会出现什么问题?
感谢您的时间!
注意:我现在创建了一个具有不同名称的新应用程序,来自用户管理的复制粘贴内容,一切正常。我认为问题可能是在我再次创建之前,有一个名为usermanagement的应用程序被删除之前。也许这会以某种方式弄乱数据库。
答案 0 :(得分:1)
我遇到了同样的问题,但我所要做的就是运行
$ python manage.py makemigraions
和
$ python manage.py migrate
答案 1 :(得分:0)
我遇到了这个。就我而言,我有一个以前使用过的django应用程序,尚未移至生产环境,因此我删除了我应用程序的migrations文件夹中的一切,然后使用django扩展名擦除了postgresql数据库并使用以下命令缓存了文件: >
./manage.py clear_cache
./manage.py clean_pyc
./manage.py reset_schema
./manage.py reset_db
# then deleted all files (including __init__.py) from my app's migrations folder.
我验证了我的postgresql数据库没有表。然后我跑了:
./manage.py makemigrations
./manage.py migrate
哪个给出了输出:
No changes detected
./manage.py migrate
Operations to perform:
Apply all migrations: admin, auth, contenttypes, sessions
Running migrations:
Applying contenttypes.0001_initial... OK
(about 11 more lines of output here which are similar)
值得注意的是,我的模型名称在迁移中无处可寻。我将表打印在我的postgresql数据库中,并且Widget和Section表都丢失了。运行应用程序给了我这个错误(我用“ app”和“ model”代替了他们的真实姓名):
ProgrammingError at /my_path
relation "app_model" does not exist
LINE 1: ..."."my_field", "app_model"."my_field" FROM "appname...
因此未在数据库中创建模型的表。我的应用程序的迁移文件夹也完全为空。解决方案是只向我的应用程序的迁移文件夹中添加一个空的__init__.py
,然后运行makemigrations
即可创建迁移文件并将其保存在该文件夹中。然后可以使用migrate
执行此操作。您可以通过在Migrations /文件夹中运行makemigrations
并在不运行__init__.py
的情况下运行Ljubitel
来自己进行测试。
此解决方案不是我的,而是用户 std::cout << " Test Bar endcap " << BarEndCap << std::entl;
在另一则帖子上提供的解决方案,但不是那里的已接受答案,但是已接受的答案对我不起作用,因此我在此处编写此解决方案以希望对其他人有所帮助
答案 2 :(得分:-2)
只需从pgAdmin中删除数据库=首先断开数据库连接,然后删除它。 然后使用与以前相同的名称再次创建数据库。删除删除迁移中的所有文件。 然后运行所有迁移命令,然后运行runserver。 您的代码是调试享受:)