2024-05-03 15:57:34 发布
网友
我正在做一个关于Django的教程
当我使用命令python manage.py shell调用交互式shell来访问数据库API时,会收到以下提示
python manage.py shell
In [1]:from music.models import Album, Song In [2]: Album.objects.all()
下一行给我这个
OperationalError: no such table: music_album
Configure your database connection在settings.py中,并且在创建Django模型之后,必须执行两个命令:
settings.py
python manage.py makemigrations
python manage.py migrate
然后将在数据库中创建表,您将能够在shell中使用这些表
正如错误所说,这意味着数据库中没有与这些模型对应的表。你知道吗
通常这意味着您忘记了迁移数据库。通过运行:
Django将构造文件(在someapp/migrations/)这些文件描述了必须执行的步骤,以便用正确的列构造表,或者稍后在progress中可以重命名列、删除表、构造新表。如果运行该命令,您将看到出现描述这些迁移的新文件。你知道吗
someapp/migrations/
但是现在您仍然没有迁移数据库本身,您只构建了文件。例如,您可能希望自己添加自定义迁移。如果迁移文件正确,可以运行
相应地更改数据库。你知道吗
为了运行迁移,必须在settings.py文件中正确指定数据库。但是由于您获得了一个OperationalError,它抱怨找不到表,因此我认为这已经得到了正确的处理。你知道吗
OperationalError
有关详细信息,请参见Django topic on migrations [Django-doc]。你知道吗
Configure your database connection在
settings.py
中,并且在创建Django模型之后,必须执行两个命令:python manage.py makemigrations
python manage.py migrate
然后将在数据库中创建表,您将能够在shell中使用这些表
正如错误所说,这意味着数据库中没有与这些模型对应的表。你知道吗
通常这意味着您忘记了迁移数据库。通过运行:
Django将构造文件(在
someapp/migrations/
)这些文件描述了必须执行的步骤,以便用正确的列构造表,或者稍后在progress中可以重命名列、删除表、构造新表。如果运行该命令,您将看到出现描述这些迁移的新文件。你知道吗但是现在您仍然没有迁移数据库本身,您只构建了文件。例如,您可能希望自己添加自定义迁移。如果迁移文件正确,可以运行
相应地更改数据库。你知道吗
为了运行迁移,必须在
settings.py
文件中正确指定数据库。但是由于您获得了一个OperationalError
,它抱怨找不到表,因此我认为这已经得到了正确的处理。你知道吗有关详细信息,请参见Django topic on migrations [Django-doc]。你知道吗
相关问题 更多 >
编程相关推荐