我的django项目之前在app中有models.py文件用来保存数据表,现在我在app中新建了一个models_file的文件夹并在这个文件夹中新建了py文件来写入数据表。在执行python3 manage.py makemigrations 和 python3 manage.py migrate后数据库没有更新models_file中的数据库改动,需要怎样做才能使models_file中的数据表生效
时间: 2024-03-16 12:47:39 浏览: 331
django 解决manage.py migrate无效的问题
默认情况下,Django只会在app的根目录中查找`models.py`文件来生成数据库迁移。如果你在app中创建了一个新的文件夹并在其中创建了一个新的models文件,则需要告诉Django在该文件夹中查找模型。
为此,你需要在你的app的`__init__.py`文件中导入你创建的`models_file`文件夹,以便Django能够找到其中的模型。具体操作步骤如下:
1. 在你的app目录下,打开`__init__.py`文件。
2. 在文件中添加以下代码:
```python
# app/__init__.py
default_app_config = 'app.apps.AppConfig'
```
3. 在你的app目录下,创建一个新的`apps.py`文件(如果没有),并添加以下代码:
```python
# app/apps.py
from django.apps import AppConfig
class AppConfig(AppConfig):
default_auto_field = 'django.db.models.BigAutoField'
name = 'app'
# 添加以下代码
def ready(self):
import models_file
```
4. 执行`python3 manage.py makemigrations`和`python3 manage.py migrate`命令,使Django能够检测到并应用你在`models_file`文件夹中创建的模型。
这样,Django就会自动在`models_file`文件夹中查找模型并生成相应的数据库迁移文件了。
阅读全文